【发布时间】:2019-10-18 02:29:54
【问题描述】:
我有一个通过 jinja2/flask 呈现的简单 HTML 页面 (main.html)。
main.html
{% extends 'layout.html' %}
{% include 'content1.html' %}
{% include 'widget1.html' %}
{% include 'widget2.html' %}
layout.html 包含所有页面的一些 CSS(引导程序)、JS 和一些 HTML(标题/菜单)。
我希望在这个 html 页面中简单地包含一些内容模板和一些“小部件”。小部件更复杂,因为它们包含自己的 JS 和 CSS(引导程序)......这会造成麻烦,因为 widget1.html 中的 CSS 会覆盖 main.html 的 CSS(考虑到包含,这并不意外)。
是否有某种方法可以“包含”widget1.html 而无需将其中的 CSS/JS 真正返回到父页面 (main.html)?
我宁愿不必重构 widget1.html,因为它是一个外部应用程序。这里有一个简单的解决方案吗?
提前致谢!
【问题讨论】:
-
您是否尝试过将外部 css 的链接包装在一个块内?类似 {% block links %} {% endblock %}
-
@Jayson_X - 感谢您的提示。试图将 css 包装在一个块中,但它没有解决问题。完全删除css确实有效(但会导致widgit中的其他问题。----
-
那么与其扩展布局,不如像其他人一样包含它。或者您从自己的 css 文件中删除冲突的 css 规则。
-
layout.html 的扩展与包含在我手中没有任何区别。鉴于主页(以及整个 UI)使用单一的引导 CSS,外部小部件也使用引导(不同的 css)这一事实导致许多(如果不是全部)css 规则发生冲突。我可以简单地在小部件中删除引导程序的使用,但是我会丢失一些小部件特定的格式。
-
是的,同意,这里与烧瓶无关。虽然我想其他人会遇到类似的问题(> 2 单页引导部署?)。似乎我只需要一些方法来隔离“widget1.html”代码——如果可能的话。抱歉,我自己不是前端开发人员 :)