澄清:以下错误仅针对admin静态文件,即特定于Django admin对应的静态文件。其余的静态文件工作正常。
基本上,我无法使用 ngix 服务器访问管理静态文件。
它确实与 Django 的微型服务器一起工作,并且collectstatic正在完成它的工作,这意味着它将文件放在静态文件夹中的预期位置。
网址是正确的,但我无法直接访问管理静态文件,但其他人可以。因此,例如:
我可以访问这个网址(在浏览器中复制它):
myserver.com:8080/static/css/base/base.css
但我无法访问这个其他 url(在浏览器中复制它):
myserver.com:8080/static/admin/css/admin.css
它不工作,如果我复制admin/的目录结构为__other_admin_directory_name/__,然后我访问
myserver.com:8080/static/__other_admin_directory_name__/css/admin.css
而且,
最后,这似乎是一个重要的线索:
我试图将admin/目录结构复制到__admin_and_then_any_suffix/__. 然后我无法访问
myserver.com:8080/static/__admin_and_then_any_suffix/__/css/admin.css. 因此,如果目录的名称以admin(例如管理或admin2)开头,则它不起作用。
编辑 - 添加感谢@sarnold 观察:
问题似乎出在nginx配置文件/etc/nginx/sites-available/mysite
location /static/admin {
alias /home/vl3/.virtualenvs/vl3/lib/python2.7/site-packages/django/contrib/admin/media/;
}
Run Code Online (Sandbox Code Playgroud)
小智 20
我的建议:
使用 django 1.3+(现在不推荐使用 ADMIN_MEDIA_PREFIX)
同时设置STATIC_URL并STATIC_ROOT在您的settings.py
在 nginx conf 中只定义一个静态条目(带有尾部斜杠)。不需要第二个地址static/admin/:
location /static/ {
alias /path/to/static/;
}
Run Code Online (Sandbox Code Playgroud)使用collectstatic哪个应该收集 admin -> static/admin。它将与您收集的所有其他静态媒体位于同一位置。
python manage.py collectstatic
| 归档时间: |
|
| 查看次数: |
27566 次 |
| 最近记录: |