【发布时间】:2016-02-25 11:41:35
【问题描述】:
大家好,我是 symfony 和 twig 的新手,我想要实现的是:
在我的 base.html.twig 文件中,我尝试 include('article.html.twig') 一切正常,直到我尝试从 article.html 覆盖(扩展)驻留在 base.html.twig 中的样式表块。枝条。
我收到一条错误消息,指出只有扩展 base.html.twig 才能实现(我知道它是这样工作的,但不是我想要的)
事实上,我想将与此模板中的 html 相关的 css 和 javascript 附加到 article.html.twig,并且只要我包含模板,它们只会在页面部分中链接(由浏览器加载)在任何其他模板中。它应该像一个独立的组件(webpart)或任何它被调用的那样工作。
你们中有人知道这样的事情是否可能吗?
提前致谢。
这是base.html.twig:
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
{% block stylesheets %}
<link rel="stylesheet" type="text/css" media="all" href="{{ asset('style.css') }}" />
{% endblock %}
</head>
<body>
<p>Test include:</p>
{{ include('article.html.twig') }}
</body>
这里是文章.html.twig
{% block stylesheets %}
{{ parent() }}
<link rel="stylesheet" type="text/css" media="all" href="{{ asset('custom.css') }}" />
{% endblock %}
<div id="article">
This is an Article!
</div>
【问题讨论】:
-
你能发布你的基地和文章树枝吗?
-
您是否尝试在
base.html.twig的javascripts块内添加一个新块? -
我已将必要的代码部分上传到帖子中。
-
您将 article.html.twig 包含到 base.html.twig 中,为什么不直接在 base.html.twig 的普通样式表中设置它的样式?另外,我认为您可能希望包含一些不同的内容。以下是文档:twig.sensiolabs.org/doc/tags/include.html.
-
当然我可以在 base.html.twig 中设置它的样式,但我想将 javascript 样式表和 html 保持在一个单元中。我希望我的样式表和 javascript 只加载到我包含文章的页面上,最好的方法是使用 php 函数 require_once 之类的东西,这样它们只会在我也想将它们保持在一起时被链接/加载,因为它们充当单个单元,我想将它们与包含一起用作插件组件。我只问 twig 是否有能力做这样的事情,因为我知道这是并且无法实现它。