澄清:以下错误仅针对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 次 |
最近记录: |