nginx没有提供pipe理员静态文件?

首先,我想澄清一下,这个错误只是为了pipe理静态文件 。 这意味着我的问题只是对应于Djangopipe理员的静态文件。 其余的静态文件正在完善。

基本上我的问题是,由于某种原因,我不能访问这些pipe理静态文件与ngix服务器。

它与Django的微型服务器完美结合,并且collect静态工作正在进行。 这意味着它将文件放在静态文件夹中的预期位置。

url是正确的,但我甚至不能直接访问pipe理静态文件 ,但我可以。 所以,例如,

  1. 我能够访问此url(在浏览器中复制):myserver.com:8080/static/css/base/base.css

  2. 但我无法访问这个其他的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

然后,它的工作。 所以,

  1. 我检查了权限,一切都很好。
  2. 我试图将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开头(例如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议:

  1. 使用django 1.3+( 现在不推荐使用ADMIN_MEDIA_PREFIX )

  2. 在settings.py中设置STATIC_URLSTATIC_ROOT

  3. 在你的nginx conf中定义一个静态条目(带有斜杠)。 不需要第二个解决static/admin/

     location /static/ { alias /path/to/static/; } 
  4. 使用collectstatic应该收集pipe理 – >静态/pipe理。 它将与所有其他收集的静态媒体位于相同的位置。

    python manage.py collectstatic