Django 找不到使用 uWSGI 的管理页面的 CSS 文件

Mar*_*lla 5 python django static-content uwsgi

即使我按照官方说明进行操作,当我使用 uWSGI 启动 Django 测试站点时,也不会加载管理界面的 CSS 文件。例如http://localhost:8443/static/admin/css/base.css,如果我打开 CSS 文件的 URL,则会收到 404 错误。我搜索了本地文件,我猜它的路径是/usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin/css/base.css; 所以我也尝试以 root 身份运行 uwsgi,但没有任何改变。

我使用没有问题python3 manage.py runserver。如果我打开http://localhost:8000/static/admin/css/base.css,文件将加载到浏览器中,并将样式应用于管理页面。

这是我在 bash 中执行的命令:

uwsgi --ini ~/.uwsgi/conf/django.ini --set-placeholder project_name=mysite --set-placeholder port=8443
Run Code Online (Sandbox Code Playgroud)

这是 django.ini 的内容:

[uwsgi]
module = %(project_name).wsgi:application
https = :%(port),/usr/local/nginx/conf/server.crt,/usr/local/nginx/conf/server.key,HIGH
strict = true
chdir = /home/marco/django-projects/%(project_name)
env = DJANGO_SETTINGS_MODULE=%(project_name).settings
socket = /home/marco/.uwsgi/%(project_name).socket
pidfile = /home/marco/.uwsgi/%(project_name).pid
daemonize = /home/marco/.uwsgi/%(project_name).log
master = true
enable-threads = true
harakiri = 20
max-requests = 5000
vacuum = true
Run Code Online (Sandbox Code Playgroud)

小智 4

官方部署文档(独立于 WSGI 服务器)不涵盖提供静态文件(通常由 Web 服务器管理)。正确的文档在这里:

https://docs.djangoproject.com/en/dev/howto/static-files/deployment/

最终使用 uWSGI 提供静态文件非常容易:

http://uwsgi-docs.readthedocs.org/en/latest/StaticFiles.html

但如果你能在 nginx 中做到这一点那就更好了