通过查看您的原始帖子,在我看来,您正在从两个不同的角度呈现您的页面。
首先,您有{% load staticfiles %},它将加载与静态文件模块关联的模板标签。其次,在您的链接元素中,您引用了{{ STATIC_URL }},它通过上下文进行扩展。
据此,我会推荐以下两种行动方案之一。
1 - 利用你在模板中加载的静态文件模块和模板标签。
为此,您应该将链接元素修改为如下所示:
<link rel="stylesheet" href="{% static "style.css" %}" type="text/css" media="screen" />
请注意,在这种情况下,我已将 {{ STATIC_URL }} 替换为 {% static %} 模板标签。 {% static %} 模板标签接受一个参数,该参数是您希望以静态 URL 作为前缀的文件,并扩展为完整的字符串。
2 - 通过修改视图以使用上下文进行渲染来利用上下文。
{{ STATIC_URL }} 变量通过请求上下文提供。有许多有用的变量,如果你想利用它们,你可以依靠它们来扩展它们。问题是您必须确保在渲染模板时使用上下文,这意味着您可能需要更改一个或多个视图。
例如,一个在没有上下文的情况下呈现的过于简单的视图如下所示:
from django.shortcuts import render_to_response
def index_without_context(request):
return render_to_response("index.html")
虽然使用上下文渲染的同样过于简单的视图看起来像这样:
from django.shortcuts import render_to_response
from django.templates import RequestContext
def index_with_context(request):
return render_to_response("index.html",
context_instance=RequestContext(request))
如上所述,通过使用RequestContext 渲染模板,您可以获得其他变量等可用的变量,因此这是一个非常可行的选择。
最后,这实际上取决于您希望将确保静态文件正确呈现静态 URL 的逻辑保留在哪里。如果您想要模板本身内部的逻辑,我建议您使用{% load staticfiles %} 方法并使用{% static %} 模板标签。如果您更喜欢使用 {{ STATIC_URL }} 变量以及其他可能有用的变量,那么我建议您修改您的视图以使用 RequestContext 呈现。
您可以在关于这个主题的 Django 文档部分阅读更多关于使用上下文处理器或模板标签的区别:
https://docs.djangoproject.com/en/1.4/howto/static-files/#referring-to-static-files-in-templates