我有一些用Smarty 3编写的模板:
layout.tpl:
{block "css"}{/block}
{block "js"}{/block}
{block "content"}{/block}
在index.tpl:
{extends "layout.tpl"}
{block "content"}
content text
{include "include.tpl"}
{/block}
include.tpl
{block "js" append}
include some extra js files for this included content
{/block}
include text
但是我遇到了编译器异常:
致命错误:未捕获异常'SmartyCompilerException',消息'模板中的语法错误include.tpl {block“js”prepend}太多的速记属性
包含模板中的块附加是否不可用,即使它包含在子模板中?
我认为如果我可以像这样使用块附加,或者可能有其他方法可以做到这一点,那将会非常有用吗?谢谢!
答案 0 :(得分:2)
Smarty的模板继承在解析器甚至知道你的{include}之前被处理。因此它无法处理包含模板中的{block}。也就是说,除非包含的模板不扩展另一个模板本身。