La interfaz de usuario funciona bien, y todos los estilos CSS y los archivos estáticos se sirven correctamente, pero a la interfaz de administración le falta el estilo CSS. Miré publicaciones similares, pero en esas publicaciones las personas tenían problemas tanto con el usuario como con la interfaz de administración. Mi problema es solo con la interfaz de administración.
Consulte la configuración de mi archivo estático a continuación desde settings.py :
STATIC_URL = '/static/' #Location of static files STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ] STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')Y esta es mi configuración de nginx:
server { listen 80; server_name MY_SERVER_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/MYUSERNAME/myproject; } location /media/ { root /home/MYUSERNAME/myproject; } Ya python manage.py collectstatic en el servidor y recibí este mensaje:
0 static files copied to '/home/MYUSERNAME/myproject/staticfiles', 255 unmodified.Reinicié nginx después de eso y también intenté vaciar la memoria caché de mi navegador, pero el problema persistió.
Más información a pedido de @Omar Siddiqui. Usando Django 3.2 Mi mysite/urls.py contiene:
from django.contrib import admin from django.urls import path, include # Imports to configure media files for summernote editor from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('', include('qa.urls')), path('summernote/', include('django_summernote.urls')), path('chatbot/', include('chatbot.urls')), ] # Enable media files for summernote editor if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)¿Podría probar los pasos a continuación y decirme si está funcionando o no?
Aplique los siguientes cambios en el archivo settings.py:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static')Elimine la siguiente línea de su configuración.py:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]Ejecute el siguiente comando en producción:
python manage.py collectstaticActualice el archivo nginx como el siguiente:
server { listen 80; server_name MY_SERVER_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { autoindex on; autoindex_exact_size off; root /home/MYUSERNAME/myproject; } location /media/ { autoindex on; autoindex_exact_size off; root /home/MYUSERNAME/myproject; } }Explicaciones:
STATIC_ROOT es la carpeta donde se almacenarán los archivos estáticos después de usar python manage.py collectstaticSTATICFILES_DIRS es la lista de carpetas donde Django buscará archivos estáticos adicionales además de la carpeta static de cada aplicación instalada. En este caso, nuestra preocupación eran los archivos CSS relacionados con el administrador, por eso usamos STATIC_ROOT en lugar de STATICFILES_DIRS
Intente cambiar STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') a:
STATIC_ROOT = os.path.join(BASE_DIR, 'static') Luego vuelva a ejecutar python manage.py collectstatic . Esto ha funcionado en el pasado para algunas personas.
Intente pasar un alias a la ubicación estática en nginx, así:
location /static/ { alias /home/MYUSERNAME/myproject/staticfiles/ }No olvide reiniciar nginx después.