首先,我想澄清一下,这个错误只是为了pipe理静态文件 。 这意味着我的问题只是对应于Djangopipe理员的静态文件。 其余的静态文件正在完善。
基本上我的问题是,由于某种原因,我不能访问这些pipe理静态文件与ngix服务器。
它与Django的微型服务器完美结合,并且collect静态工作正在进行。 这意味着它将文件放在静态文件夹中的预期位置。
url是正确的,但我甚至不能直接访问pipe理静态文件 ,但我可以。 所以,例如,
我能够访问此url(在浏览器中复制):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开头(例如pipe理或admin2) ,则不起作用 。
***补充说,感谢sarnold观察****的问题似乎是在nginx的configuration文件/ etc / nginx / sites-available / mysite
location /static/admin { alias /home/vl3/.virtualenvs/vl3/lib/python2.7/site-packages/django/contrib/admin/media/; }
我的build议:
使用django 1.3+( 现在不推荐使用ADMIN_MEDIA_PREFIX )
在settings.py中设置STATIC_URL和STATIC_ROOT
在你的nginx conf中定义一个静态条目(带有斜杠)。 不需要第二个解决static/admin/ :
location /static/ { alias /path/to/static/; }
使用collectstatic应该收集pipe理 – >静态/pipe理。 它将与所有其他收集的静态媒体位于相同的位置。
python manage.py collectstatic