我有一个Django模板(主页),其中包括另一个模板(导航栏)。
我有一个CSS文件为我的主页,一个为我的导航栏。
我的问题是:如何正确地将导航栏的CSS包含在主页面中?
我试了一下(1):
main_page.html
{% block css %}
<link rel="stylesheet" type="text/css" href="style.css">
{% endblock %}
字符串
navbar.html
{% block css %}
<link rel="stylesheet" type="text/css" href="navbar.css">
{% endblock %}
型
或者只是(2)
main_page.html
<link rel="stylesheet" type="text/css" href="style.css">
型
navbar.html
<link rel="stylesheet" type="text/css" href="navbar.css">
型
然后在main_page. html中
{% include "base/navbar.html" %}
型
在每种情况下,两个CSS都被加载(main_page + navbar),但我不认为像这样包含CSS是好的。
在Django的include
HTML页面中包含CSS的正确方法是什么?
在情况(1)中,即使我使用{% block %}
,main_page的CSS仍然保留,而不是替换为我在navbar.html中指定的CSS。这是正常的行为吗(因为使用了include而不是extends?)?
先谢谢你了,弗洛
2条答案
按热度按时间3okqufwl1#
为了扩展模板块,你需要包含
{{ block.super }}
,这将包含你在父模板中声明的内容:字符串
但更好的解决方案是使用
sekizai
,这是一个允许您轻松包含资产的库:http://django-sekizai.readthedocs.org/en/latest/还有更复杂的解决方案,允许您压缩和分组资产:http://django-pipeline.readthedocs.org/
webghufk2#
在Django temple中包含css(或js)的方法有很多。我将发布我在项目中使用的方法。
1.在任何专门使用css/js的模板中,将它们放在模板中
就像,
在“main_page.html”中
第一个月
inside“navbar.html”
<link rel="stylesheet" type="text/css" href="navbar.css">
个