3

完成后,python manage.py collectstatic我发现我可以访问所有内容,static/css但不能访问static/admin. 要非常清楚:

  1. 我去: http: //mysite.com/static/admin/css/login.css并失败
  2. 手动将文件夹移动static/adminstatic/css
  3. 我去: http: //mysite.com/static/css/admin/css/login.css并且工作!

注意URLS 中从/static/admin/css//static/css/admin/css/的变化。这意味着这并不能解决问题,因为模板继续指向第一个 URL。

我知道,在 stackoverflow 中提供静态管理文件已被询问了 100 次,但我仍然无法使其工作(而且我并不孤单地阅读我所阅读的评论)。似乎没有人提到访问static/css文件夹和static/anyother_folder.

一些额外的细节:

没有错误,collectstatic应用程序css没有问题。这就是我的settings.py):

MEDIA_ROOT = join(PROJECT_ROOT,'../media')
MEDIA_URL = '/media/'
STATIC_ROOT = join(PROJECT_ROOT,'../static')
STATIC_URL = '/static/'

我也尝试过不推荐使用 ADMIN_MEDIA_PREFIX的方法,但没有任何结果。

ADMIN_MEDIA_PREFIX = '/static/admin/'

我的 nginx 配置简单明了。

location /static {
    alias /home/the_home/where_the_static_is/static/;
}
location /media {
    alias /home/the_home/where_the_media_is/media/;
}

我正在使用最新版本的 Django (1.4.2)。

4

1 回答 1

1

噗。所以,就在这里。我在 nginx 中有另一个文件夹,将 /static/admin/ 重定向到虚拟环境中的 Django 安装。在组织中,我们使用预先配置我们的 Django 项目的虚拟机模板。所以,重新访问 nginx 配置我发现了这个:

location /static/admin {
   alias /path/to/virtualenvs/my_virtualenv/path_to_the_static_admin;
}

显然这适用于 Django 1.3,但路径在某些时候发生了变化。

于 2012-11-19T18:19:30.990 回答