I'm using Django+Gunicorn+Nginx for my web application in a Ubuntu 22.04.4 server. I followed this guide until the end and my web is running in production. However, static files are not working (css, images and js) and I feel like I've tried everything.
My static files only work if I run the django development server with Debug activated on localhost.
My project is located in /home/user/visor/prod/visor_scs/. My static files are in /var/www/myweb.com/static/ and I've also tried placing then in /home/user/visor/prod/visor_scs/static/ with no result (after adjusting my nginx configuration accordingly).
Here are my settings.py related to static files:
INSTALLED_APPS = [ ..., 'django.contrib.staticfiles', ] STATIC_URL = '/static/' STATIC_ROOT = '/var/www/myweb.com/static/'
Here is my gunicorn service:
[Unit] Description=gunicorn daemon Requires=gunicorn.socket After=network.target [Service] User=user Group=www-data WorkingDirectory=/home/user/visor/prod/visor_scs ExecStart=/home/user/visor/prod/visor_scs/prod-envisor/bin/gunicorn \ --access-logfile - \ --workers 3 \ --bind unix:/run/gunicorn.sock \ visor_scs.wsgi:application [Install] WantedBy=multi-user.target
Here is my nginx configuration in /var/nginx/sites-available/visor_scs:
server { listen 80; server_name myweb.com; location = /favicon.ico { access_log off; log_not_found off; } location = /static/ { root /var/www/myweb.com/static/; } location / { include proxy_params; proxy_pass http://unix:/run/gunicorn.sock; } }
I've also tried using alias instead of root and placing my static files inside of my project directory. After every change I've restarted nginx and gunicorn services and run collectstatic. I also gave permissions and ownership to the www-data user for the static and project directories.
I've checked the logs for gunicorn and nginx and there's nothing that cath my eye besides a 404 for all my static files.
Lastly, here are the errors in the development console in the browser:
GET http://myweb.com/static/visor/styles.css GET http://myweb.com/static/visor/leaflet_style.css GET http://myweb.com/static/visor/img/logo_vertical_mediano.png [HTTP/1.1 404 Not Found 105ms] El recurso de “http://myweb.com/static/visor/styles.css” fue bloqueado debido a una discordancia del tipo MIME (“text/html”) (X-Content-Type-Options: nosniff). visor El recurso de “http://myweb.com/static/visor/leaflet_style.css” fue bloqueado debido a una discordancia del tipo MIME (“text/html”) (X-Content-Type-Options: nosniff). visor GET http://myweb.com/static/visor/styles.css GET http://myweb.com/static/visor/leaflet_style.css El recurso de “http://myweb.com/static/visor/styles.css” fue bloqueado debido a una discordancia del tipo MIME (“text/html”) (X-Content-Type-Options: nosniff). visor El recurso de “http://myweb.com/static/visor/leaflet_style.css” fue bloqueado debido a una discordancia del tipo MIME (“text/html”) (X-Content-Type-Options: nosniff). visor GET http://myweb.com/static/visor/img/apple-touch-icon.png [HTTP/1.1 404 Not Found 33ms] GET http://myweb.com/static/visor/img/favicon-16x16.png [HTTP/1.1 404 Not Found 24ms]
I feel like I'm banging my head against a wall, I'll supply any relevant info/logs. Thank you for reading if you've reached this point.
root /var/www/myweb.com;