通过查看您的原始帖子,在我看来,您正在从两个不同的角度呈现您的页面。
首先,您{% load staticfiles %}
将加载与 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))
正如我上面所说,通过使用 a 渲染模板,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