Django no puede encontrar files estáticos en el server, pero funciona bien en la máquina local

Tengo un vps corriendo con django, estoy desarrollando el sitio desde mi máquina local y empujándolo hasta el vps por git.

En mi máquina local acabo de instalar el initializr, y cambié todos los scripts para usar la location estática, y todo funciona bien allí, pero cuando lo empujo a mi vps, todo lo que encuentra son los files .html, no puede encontrar ninguno scripts .css o .js el vps está ejecutando Debian 8. * Mínimo, con nginx, y gunicorn Mi máquina local está ejecutando MacOs. Ambas máquinas ejecutan Python 3.6.2 y Django 1.11.4

Aquí están las configuraciones relevantes de settings.py:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ... TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, "BaseFiles/templates")], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] ... STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, "BaseFiles/static"), ) 

Mis paths son:

 Project_folder/ -> BaseFiles | Django_project | manage.py BaseFiles/ -> static | templates 

ACTUALIZAR Bien, resulta que si ejecuto django manualmente desde el vps, carga bien los files css y js, por lo que el problema está aislado en Nginx

Nginx:

 server { listen 80; server_name domaine.com; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/user/project_folder; } 

Entonces resulta que tuve una configuration incorrecta en mi file de sitio nginx. Después de agregar la siguiente carpeta project_folder funcionó bien

 /BaseFiles 

Prueba esto:

Dale una raíz estática a tu settings.py

 STATIC_ROOT = '/var/www/project/static/' 

Y en tu nginx:

 location /static/ { alias /var/www/project/static/; } 

Haga python3 manage.py collectstatic y sudo service nginx restart y esto probablemente debería funcionar. Espero que esto ayude. Gracias.

Nginx no encuentra tus files estáticos.

Necesita recostackr files de statistics y configurar la location de la carpeta estática en su configuration.py.

Otra forma es instalar whitenoise (pip install whitenoise). Este plugin hace el truco -> https://djangopackages.org/packages/p/whitenoise/