将导航栏添加到所有模板

我想在每个页面上显示一个导航栏。在PHP中,我会编写导航栏,然后将其包含在其他页面上。我试图将导航栏模板包括或扩展到其他模板中,但是没有用。它仅输出“这是主页”。如何在每个模板中正确包含导航栏?

layout.html

<!doctype html>

<html>

<body>

{% block navbar %}

<style>

body {

margin: 0;

padding: 0;

}

div{

background: #333;

color: #f9f9f9;

width: 100%;

height: 50px;

line-height: 50px;

text-align: center;

}

</style>

<div>NAVBAR</div>

{% endblock %}

{% block content %}

{% endblock %}

</body>

</html>

index.html

This is the home page.

{% extends "layout.html" %}

{% block navbar %} {% endblock %}

{% block content %}

<h1>This is the homepage!</h1>

{% endblock %}

回答:

使用所有页面共有的布局和导航创建基本模板。然后扩展此模板以创建实际的页面。向基本模板中添加可以在其他模板中覆盖的块。

base.html

<!doctype html>

<html>

<head>

<meta charset="utf-8"/>

<title>{% block title %} - My Site</title>

</head>

<body>

<div>Navbar</div>

{% block content %}{% endblock %}

</body>

</html>

index.html

{% extends 'base.html' %}

{% block content %}

<h3>{% block title %}Home{% endblock %}</h3>

<p>Hello, World!</p>

{% endblock %}

请注意,导航栏仅在基本模板中定义。它不需要块,并且子模板中的内容将在其后被细分。

以上是 将导航栏添加到所有模板 的全部内容, 来源链接: utcz.com/qa/416622.html

回到顶部