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>

 

posted @ 2026-07-21 16:06  刘宏缔的架构森林  阅读(2)  评论(0)    收藏  举报