0

在 settings.py 中:

STATIC_ROOT = os.path.join(PROJECT_PATH, '..', 'media/static')
STATIC_URL = '/media/static/

在渲染页面中:

<title>Site administration | Django site admin</title>
<link rel="stylesheet" type="text/css" href="/media/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="css/dashboard.css" />

base.css 的 href 是正确的,但 dashboard.css 的 href 缺少media/static/admin. 为什么?

4

3 回答 3

0

即使 Django 对您大喊 ADMIN_MEDIA_PREFIX 已被弃用,但将它放在您的 settings.py 中似乎有时可以修复此错误。我还没有时间去寻找资料来源,但是无论dashboard.css 来自哪里的“extra_styles”上下文设置,似乎仍然会查看AMP 设置。

于 2012-08-02T21:14:03.217 回答
0

我猜你的模板看起来像这样?

<title>Site administration | Django site admin</title>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/dashboard.css" />

如果您尝试在浏览器中使用它们应该具有的位置打开它们,您可以访问这两个文件吗?/media/static/admin/css/base.css/media/static/css/dashboard.css(或者可能是../admin/...)

你添加'django.core.context_processors.static',到你的TEMPLATE_CONTEXT_PROCESSORS?

更新

当我尝试同样的方法时,它对我来说效果很好。在我的模板中:

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" />, 
<link rel="stylesheet" type="text/css" href="{% static "admin/css/dashboard.css" %}" />

呈现的 HTML(在我当前的项目/static/中是我的 STATIC_URL):

<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />, 
<link rel="stylesheet" type="text/css" href="/static/admin/css/dashboard.css" />
于 2012-06-27T15:08:52.810 回答
0

当我忘记STATIC_URL设置render_to_response. 如果没有看到您在视图和模板中使用的代码,很难确定实际问题,但如果它正在设置上下文并且您正在使用render_to_response,请尝试以下操作:

return render_to_response("login.html", context_instance=RequestContext(request))

许多其他渲染功能也是如此。你能发布视图和模板吗?

于 2012-06-29T07:41:21.420 回答