fastapi: jinja2,页面的js不起作用
一,问题:
jinja2页面上的js无效,
明明是ajaxsubmit的方法,却成了直接post到页面
二,原因:
在 Jinja2 模板中,一旦你使用了 {% extends "layout/admin.html" %} ,这就属于子模板。
子模板中所有位于 {% block %} 之外的纯文本、HTML 标签、甚至逻辑代码,在最终渲染的页面上都会被全部忽略(不显示)
相应的js代码没有显示到页面上,自然也就不会加载,所以也就不会起作用
原因:
由于骨架是由父模板决定的,子模板中那些无家可归(不在 block 内)的代码,
Jinja2 根本不知道该把它们塞到页面的哪个位置,为了防止布局崩坏,会直接选择扔掉它们
三,例子:
{% extends "layout/admin.html" %}
<!-- ❌ 错误:写在 block 外面,渲染后这段字会直接消失 -->
<h1>这个标题不会显示在页面上!</h1>
{% block main %}
<p>这个段落在 block 内部,会正常显示。</p>
{% endblock %}
<!-- ❌ 错误:写在尾部也是一样的,会被忽略 -->
<div>这里的页脚也不会显示</div>
浙公网安备 33010602011771号