django – nginx不提供管理静态文件?

澄清:以下错误仅适用于管理静态文件,即它特定于与Django管理员对应的静态文件.其余的静态文件完美运行.问题基本上,我无法使用ngix服务器访问管理静态文件.它确实与Django的微服务器一起工作,并且collectstatic正在完成它的工作,这意味着它将文件放在静态文件

澄清:以下错误仅适用于管理静态文件,即它特定于与Django管理员对应的静态文件.其余的静态文件完美运行.

问题

基本上,我无法使用ngix服务器访问管理静态文件.

它确实与Django的微服务器一起工作,并且collectstatic正在完成它的工作,这意味着它将文件放在静态文件夹中的预期位置.

网址是正确的,但我不能直接访问管理静态文件,但我可以访问其他人.所以,例如:

>我可以访问此URL(在浏览器中复制它):
myserver.com:8080/static/css/base/base.css
>但我无法访问此其他网址(在浏览器中复制):
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_MEDIA_PREFIX =’/ static / admin /’更改为ADMIN_MEDIA_PREFIX =’/ static / other_admin_directory_name /’,它不起作用.

最后,它似乎是一个重要的线索:

我试图将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/;
}

最佳答案
我的建议:

>使用django 1.3(和ADMIN_MEDIA_PREFIX is deprecated now)
>在settings.py中设置STATIC_URL and STATIC_ROOT
>在nginx conf中定义一个静态条目(带有斜杠).不需要第二个解决static / admin /的问题:

location /static/  {
        alias /path/to/static/;
}

>使用应该收集管理员的collectstatic – >静态/管理员.它将与所有其他收集的静态媒体位于同一位置.

python manage.py collectstatic

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部