smarty提示“syntax error: unrecognized tag”错误的解决方法

smarty中使用{}作为定界符,如果模板中包含了其他的{}就会造成解析错误,实际上这种情况很常见,比如模板中有内联js,写了点小函数之类的。

解决的方法有3种,只推荐最方便的那种:在包含错误标记的代码外加上{literal}{/literal}标签,因为smarty报错的时候会提示行号,所以很容易找到出错位置。下面是例子,在smarty中使用打了bsie补丁的bootstrap报错的解决方法:

{literal}
<script type=”text/javascript”>
(function($){
$(document).ready(function() {
if ($.isFunction($.bootstrapIE6)) $.bootstrapIE6($(document));
});
})(jQuery);
</script>
{/literal}

其他的解决方法如果有兴趣请自行参考文档:

传送门1 传送门2