mul*_*rse 4 deployment django nginx
用户界面运行良好,所有 CSS 样式和静态文件均正确提供,但管理界面缺少 CSS 样式。我查看了类似的帖子,但在这些帖子中,人们都遇到了用户和管理界面的问题。我的问题仅在于管理界面。
请参阅下面的我的静态文件设置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')
Run Code Online (Sandbox Code Playgroud)
这是我的 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;
}
Run Code Online (Sandbox Code Playgroud)
我已经python manage.py collectstatic在服务器上执行并收到此消息:
0 static files copied to '/home/MYUSERNAME/myproject/staticfiles', 255 unmodified.
Run Code Online (Sandbox Code Playgroud)
之后我重新启动了 nginx,并尝试清空浏览器缓存,但问题仍然存在。
应@Omar Siddiqui 要求提供更多信息。 使用 Django 3.2 我的 mysite/urls.py 包含:
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)
Run Code Online (Sandbox Code Playgroud)
您能否尝试以下步骤并让我知道它是否有效?
在 settings.py 文件中应用以下更改:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Run Code Online (Sandbox Code Playgroud)
从 settings.py 中删除以下行:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]
Run Code Online (Sandbox Code Playgroud)
在生产中执行以下命令:
python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)
更新 nginx 文件,如下所示:
# prevent css, js files sent as text/plain objects
include /etc/nginx/mime.types;
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;
}
}
Run Code Online (Sandbox Code Playgroud)
说明:
STATIC_ROOT是使用后存放静态文件的文件夹python manage.py collectstaticSTATICFILES_DIRS是文件夹列表,django 将在其中搜索除static每个已安装应用程序的文件夹之外的其他静态文件。在这种情况下,我们关心的是与管理相关的 CSS 文件,这就是为什么我们使用STATIC_ROOT而不是STATICFILES_DIRS
| 归档时间: |
|
| 查看次数: |
3860 次 |
| 最近记录: |