【问题标题】:how to serve static/admin/ and not just static/css?如何提供静态/管理员/而不仅仅是静态/css?
【发布时间】:2012-11-05 07:19:27
【问题描述】:

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

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

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

我知道,提供静态管理文件已在 stackoverflow 中被询问了 100 次,但我仍然无法使其正常工作(而且对于我读过的 cmets,我并不孤单)。似乎没有人提到访问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)。

【问题讨论】:

  • 这个问题1 遇到了同样的问题。他说他的环境有问题,不幸的是没有说什么:(。
  • 您确定 django.contrib.admin 在您安装的应用程序中吗?如果不是,Collectstatic 不会复制文件。
  • 谢谢。 django.contrib.admin 在那里。 collectstatic 运行良好。它将文件放在 static/admin 中,由于无法理解的原因,我无法访问。
  • 请启用日志记录并在您请求mysite.com/static/admin/css/login.css时发布 nginx 正在查找的位置的 sn-p
  • 谢谢,我终于知道发生了什么。感谢您再次向我指出 nginx。

标签: django django-admin


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2012-02-03
    • 2018-08-26
    • 2012-03-19
    相关资源
    最近更新 更多