Report this

What is the reason for this report?

Gatsby build on Nginx not loading js on build

Posted on January 29, 2019

Hello, I have a static site made with Gatsby and WP for the backend. I have the same git deployed on Netlify and it works great. When it comes to deploy it on any Ubuntu like server i have always the same problem. Here is what I have done:

I have the same problem on all environments. What am I missing?

Thanks a lot, F.



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Thanks for your answer! Looking forward to try this!

Hey F.

It looks like your images and JS are not loaded because of relative URL issues:

  1. The nginx document root is /var/www - _so when someone loads http://46.101.101.149 nginx looks for files in /var/www
  2. Your site is two directories down, at: /var/www/filipporivolta.it-gatsby/public/ so you correctly had to add /filipporivolta.it-gatsby/public/ to the external URL to get to your Gatsby public root.
  3. However, Gatsby doesn’t know about those two subdirectories, and renders out links to JS and Images like this: <script src="/1-b0f05c4bb642dc46906c.js" async=""> ^ That URL is referencing a nonexistent JS file at http://46.101.101.149/1-b0f05c4bb642dc46906c.js AKA /var/www/1-b0f05c4bb642dc46906c.js

To Fix: Move your nginx document root from /var/www/ to /var/www/filipporivolta.it-gatsby/public/ by updating your nginx config and reloading nginx. Instructions here: https://www.digitalocean.com/community/tutorials/how-to-move-an-nginx-web-root-to-a-new-location-on-ubuntu-16-04#step-2-—-updating-the-configuration-files

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.