Django模板扩展与CSS
我有一个这样的基础模板:
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="/static/style.css"/>
当我刷新页面时,日志里出现了这个文本:
[01/Dec/2011 18:22:00] "GET /search/ HTTP/1.1" 200 2760
[01/Dec/2011 18:22:00] "GET /static/style.css HTTP/1.1" 200 54
这说明CSS文件从服务器加载是没问题的。但是它就是不生效!如果我把这个CSS直接写成文本放在基础模板里,它就能正常工作。静态文件的配置也是没问题的。
4 个回答
你说的“没效果”具体指什么呢?是样式没有应用上,还是图片缺失了,等等?你确定你已经把对CSS文件的修改保存了吗?看起来在/static/style.css这个位置找到了一个文件,所以应该里面有一些内容……
这虽然是个很晚的回复,但现在可能比五年前更有用:确保你正在编辑的样式表不是由你网站的服务器生成的。
我不太确定@RankoR是否在修改style.css文件,但这些修改没有在网站上显示出来,或者根本没有任何样式应用到模板上。如果你遇到前者的情况:你可以通过在根文件夹中添加自己的.css文件夹,并在其中添加你想要更改的样式定义,快速排除样式被其他地方生成的可能性。
比如说,你想自定义导航栏的样式——如果你想把 .navbar-inverse {background-color: #222; border-color: #090909 }
改成 .navbar-inverse {background-color: #222; border-color: #090909; font:20px bold Arial, sans-serif }
,你可以在新的空白.css文件中添加 .navbar-inverse2 {background-color: #222; border-color: #090909; font:20px bold Arial, sans-serif }
,然后把你的html中的 .navbar-inverse
标签改成 navbar-inverse2
。如果你在 <head>
中把你的样式表放在原来的样式表下面,并且这个更改能显示出来:那你就快要找到解决办法了!
你是不是把CSS放在一个会把它放到网页头部的区域里?
/* base.html */
<html>
<head>
<title>{% block title %}{% endblock %}</title>
{% block extra_head %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
/* another template */
{% extends 'base.html' %}
{% block title %}My Title{% endblock %}
{% block extra_head %}
<link rel="stylesheet" href="/static/style.css"/>
{% endblock %}
{% block content %}
<h1>This is my page!</h1>
{% endblock %}
在你的浏览器里,页面的源代码看起来怎么样?样式表在头部吗?你能点击链接看到实际的CSS吗?