Django 管理站点的静态媒体文件在哪里?如何配置?

2 投票
1 回答
4356 浏览
提问于 2025-04-17 06:49

到目前为止,我一直在使用一个稳定版本的django:1.3,我的settings.py文件看起来是这样的(针对管理网站):

STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'

我刚刚切换到开发版本,一运行服务器就收到了以下警告:

DeprecationWarning: The ADMIN_MEDIA_PREFIX setting has been removed; use STATIC_URL instead.
 "use STATIC_URL instead.", DeprecationWarning)

而且,我的管理网站现在看起来不一样了(没有了所有的css、javascript等)。

我尝试把静态文件的URL改成不同的选项,还完全去掉了管理媒体的前缀,但管理网站的原始样子还是没恢复。

有人能告诉我该怎么配置吗?

1 个回答

2

在下一个Django版本中,静态文件的处理会像以前的django-staticfiles应用那样工作:

  • 为了确保你能从所有应用中获取到所有的静态文件,约定是把每个应用的静态文件放在一个叫“static”的子目录里。
  • 在开发阶段,所有内容都会由开发服务器自动提供。
  • 在生产阶段,所有内容会从一个目录中静态提供给你的HTTP生产服务器。要填充这个目录,可以使用 ./manage.py collectstatic 命令。

所以你不需要 ADMIN_MEDIA_PREFIX,因为管理员的静态文件在开发时会自动提供,或者在生产时会通过 collectstatic 自动收集。

STATIC_URL 应该与生产环境中你提供静态内容的URL相匹配,所有的静态内容都要在这里。STATIC_ROOT 应该是你希望通过 collectstatic 复制静态文件的目录的绝对路径。

撰写回答