24

从 django 1.5 开始,https://docs.djangoproject.com/en/1.5/releases/1.5/#miscellaneous

模板标签库 adminmedia 仅包含已弃用的模板标签 {% admin_media_prefix %},已被删除。尝试使用 {% load adminmedia %} 加载它会失败。如果您的模板仍然包含该行,则必须将其删除。

那么,替换遗留库和我的遗留项目中的代码的合适方法是什么,这些遗留项目仍然使用{% load adminmedia %}和加载 css,例如:-

<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/login.css">

?

4

2 回答 2

24

从 Django 1.3 开始,您可以使用django.contrib.staticfiles应用程序。

确保 django.contrib.staticfiles 包含在您的 INSTALLED_APPS 中,并且在您的 settings.py 中指定了 STATIC_ROOT 和 STATIC_URL 选项。

然后运行manage.py collectstatic命令,所有应用程序的静态文件将被收集到 STATIC_ROOT 文件夹中。

在模板中,您可以使用{{ STATIC_URL }}上下文变量(确保 django.core.context_processors.static 包含在 TEMPLATE_CONTEXT_PROCESSORS 中)或{% static %}模板标签。

<link href="{{ STATIC_URL }}admin/css/login.css" rel="stylesheet">

或者

{% load staticfiles %}
<link href="{% static 'admin/css/login.css' %}" rel="stylesheet">
于 2012-11-29T13:36:54.647 回答
5

I just copied what's in base.css:

{% load admin_static %}

and then

<link href="{% static 'admin/css/base.css' %}" rel="stylesheet">

(replace base.css with whatever you need, like login.css in your case)

Make sure you have django.contrib.staticfiles in your INSTALLED_APPS.

(I didn't need to configure STATIC_ROOT and run manage.py collectstatic as suggested previously by Anton)

于 2013-05-19T10:00:11.353 回答