Html 正确地包含CSS

Html 正确地包含CSS,html,css,django,dom,django-templates,Html,Css,Django,Dom,Django Templates,我有一个Django模板(主页),其中包括另一个模板(导航栏)。 我有一个CSS文件用于主页,一个用于导航栏。 我的问题是:如何在主页中正确地包含导航栏的CSS 我试过这个(1): main_page.html {% block css %} <link rel="stylesheet" type="text/css" href="style.css"> {% endblock %} <link rel="stylesheet" type="text/css" hre

我有一个Django模板(主页),其中包括另一个模板(导航栏)。
我有一个CSS文件用于主页,一个用于导航栏。
我的问题是:如何在主页中正确地包含导航栏的CSS

我试过这个(1):

main_page.html

{% block css %}
    <link rel="stylesheet" type="text/css" href="style.css">
{% endblock %}
<link rel="stylesheet" type="text/css" href="style.css">
{% include "base/navbar.html" %}
在每种情况下,都会加载两个CSS(主页+导航栏),但我认为这样包含CSS并不好。
使用Django的
include
在HTML页面中包含CSS的正确方法是什么

在案例(1)中,即使我使用了
{%block%}
,主页面的CSS仍然保留,并且没有被我在navbar.html中指定的CSS替换。这是正常行为吗(因为使用include而不是extends?)

提前谢谢大家,,
Flo

为了扩展模板块,您需要包括
{{{block.super}
这将包括您在父模板中声明的内容:

{% block css %}
    {{ block.super }}
    <link rel="stylesheet" type="text/css" href="navbar.css">
{% endblock %}
{%block-css%}
{{block.super}}
{%endblock%}
但更好的解决方案是使用
sekizai
,这是一个可以让您轻松包含资产的库:

还有一些更复杂的解决方案允许您压缩和分组资产:
谢谢你的回答,但是我使用<代码>包含不<代码>扩展< /COD>在我的页面中间包含我的Navar,所以这个解决方案不起作用。我尝试在导航栏中包含CSS,但不知道如何做,因为当我包含导航栏时,
已经在这里了。因此,我不知道如何在
include
模板语句中添加一个额外的
Sekizai
非常简单和快速。好的,我会检查它。非常感谢。您使用include而不是extend是否有特定的原因?因为可能会有一些细微的变化,所以您没有按照预期使用django模板系统。你以前是PHP的忠实用户吗?
{% include "base/navbar.html" %}
{% block css %}
    {{ block.super }}
    <link rel="stylesheet" type="text/css" href="navbar.css">
{% endblock %}