[英]How to use multiple partials with Swig?
在我看來,Swig 沒有渲染一些局部。 如何以正確的方式傳遞block
? 什么文件應該擴展什么?
我有這樣的觀點結構:
// files
header.html // <- partial
header_logo.html // <- partial
layout.html // <- layout
index.html // <- page
index.html是 Swig 呈現的。 它看起來像這樣:
{% extends 'layout.html' %}
{% extends 'header.html' %}
{% extends 'header_logo.html' %}
{% block head %}
{% parent %}
<link href="/assets/css/index/index.css" rel="stylesheet">
{% endblock %}
{% block content %}
{% block header_logo %}{% endblock %} // <- This one doesn't render
.... html content code goes here ....
{% endblock %}
layout.html看起來像這樣:
<!DOCTYPE html>
<html lang="en">
<head>
{% block head %}
<link href="/assets/css/index/layout.css" rel="stylesheet">
{% endblock %}
</head>
<body>
{% block header %}{% endblock %}
{% block content %}{% endblock %}
</body>
</html>
header.html看起來像這樣:
{% extends 'layout.html' %}
{% block header %}
... html code goes here ...
{% endblock %}
header_logo.html看起來像這樣。 而這個不渲染。
{% extends 'layout.html' %}
{% block header_logo %}
... html code goes here ...
{% endblock %}
每個文件只能擴展一個模板。 你想要做的是這樣的......
index.html
擴展了header_logo.html
header_logo.html
擴展了header.html
header.html
擴展了layout.html
或者,您似乎希望在index.html
模板中包含header_logo
,而不是從中擴展。 你最好做這樣的事情......
索引.html
{% extends 'layout.html' %}
{% block header %}{% include 'header.html' %}{% end block %}
{% block content %}
{% include 'header_logo.html' %}
...
{% endblock %}
我在views文件夾下創建了一個partials文件夾。
然后從reports.swig 模板中引用這樣的部分視圖。
{% extends 'layout.swig' %}
{% block content %}
{% for report in reports %}
{% include './partials/displayReports.swig' %}
{% endfor %}
{% endblock %}
感謝保羅的回答!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.