是否可以包含一个模板,{% include %}该模板位于定义的模板路径之外:
$template = $twig->loadTemplate('example.tpl');
Run Code Online (Sandbox Code Playgroud)
我问它,因为这条线不起作用:
{% include '.../example/navbar_left.tpl' %}
Run Code Online (Sandbox Code Playgroud)
不,不可能使用Twig_Loader_Filesystem,因为它明确拒绝包含..内部的模板名称。这可以验证到validateName($name)file中函数的定义Twig/lib/Twig/Loader/Filesystem.php。
如果您需要访问路径外的模板,我能想到的唯一干净的解决方案是创建自己的 loader。
一个可行的解决方法是在实际注册的文件夹内定义一个符号链接Twig_Loader_Filesystem,指向您要访问的目录。要小心使用这种方法,点链接到一个安全的地方。
您可以通过以下方式添加更多路径: https: //symfony.com/doc/3.4/templated/namespaced_paths.html
配置.yml
# Twig Configuration
twig:
paths:
'%kernel.root_dir%/../src/AppBundle/Resources/views': AppBundle
'%kernel.root_dir%/../web/': 'WEB_DIR_DIST' #your new custom path
Run Code Online (Sandbox Code Playgroud)
someFile.html.twig
<script>{{ source('@WEB_DIR_DIST' ~ 'custom.js') }}</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16164 次 |
| 最近记录: |