正确使用CSS文件中的模板语言

时间:2012-02-14 22:51:45

标签: css django django-templates

我正在尝试通过我的url.py文件提供CSS文件,因此我可以在CSS中使用模板标记。

这是我的代码。

base.html文件:

<head>
...
<link rel="stylesheet" type="text/css" href="/site_media/css/wideTitle.css" />

urls.py:

(r'^site_media/css/wideTitle.css','lightbearers.views.viewWideTitle'),

views.py:

def viewWideTitle(request):
    contentListAbout = About.objects.filter(Q(startDate__lte=datetime.now())).order_by('-startDate')
    if len(contentListAbout) > 0:
        contentAbout = contentListAbout[0]
    else:
        contentAbout = None
    ...
    return render_to_response('wideTitle.css', {'contentAbout':contentAbout, ...},
                              context_instance=RequestContext(request))

settings.py:

TEMPLATE_DIRS = (
    os.path.join(PROJECT_PARENT, "templates"),
    os.path.join(PROJECT_PARENT, "media/css"),
)

wideTitle.css(在/ media / css中):

#wideTitle{
    clear:both;
    height:180px;
    padding-left:0px;
    background: url({{ contentAbout.headerImage.url }}) no-repeat top left;
}

我可以通过在浏览器中输入其URL来访问CSS文件,但Base.html根本没有阅读它。我想我的一切都很体面;我看过herehere了解提示。有人有想法吗?

1 个答案:

答案 0 :(得分:2)

生成的样式表是否使用正确的mime类型?如果没有,浏览器可能不会将其解释为CSS。

我不记得render_to_response是否接受content_type='text/css作为参数,但如果Django尚未使用正确的mime类型,则可以设置它。

修改:@TommasoBarbugli pointed out,您需要mimetype的{​​{1}}参数。

(Firefox的Firebug插件或Chrome / Safari中的Web Inspector应该能够显示样式表的mime类型。)