在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
。为什么呢?
答案 0 :(得分: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" />
答案 1 :(得分:0)
当我忘记设置STATIC_URL
的上下文时,我之前遇到过render_to_response
的问题。如果没有看到您在视图和模板中使用的代码,则很难确定实际问题,但如果它正在设置上下文并且您正在使用render_to_response
,请尝试以下操作:
return render_to_response("login.html", context_instance=RequestContext(request))
许多其他渲染功能也是如此。你可以发布视图和模板吗?
答案 2 :(得分:0)
尽管Django对你大喊大叫不推荐使用ADMIN_MEDIA_PREFIX,但是将它放在你的settings.py中似乎可以在某些时候解决这个错误。我没有时间采取潜水,但无论在何处设置dashboard.css来自的'extra_styles'上下文,似乎仍然会看到AMP设置。