我使用智能模板引擎跟随代码
在php文件中:
$smarty->assign('SITE_URL', 'http://localhost/mis/');
在tpl文件中:
{literal}
<script type="text/javascript" src="{$SITE_URL}lightbox/js/prototype.js"></script>
<script type="text/javascript" src="{$SITE_URL}lightbox/js/scriptaculous.js?load=effects,builder"></script>;
<script type="text/javascript" src="{$SITE_URL}lightbox/js/lightbox.js"></script>
{/literal}
我希望代码在html视图中呈现如下所示
<script type="text/javascript" src="http://localhost/mis/lightbox/js/prototype.js"></script>
<script type="text/javascript" src="http://localhost/mis/lightbox/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="http://localhost/mis/lightbox/js/lightbox.js"></script>
请帮助我。
答案 0 :(得分:13)
{literal}用于防止变量,所以你不能像你描述的那样去做。相反,您应该在想要使用变量之前关闭{/ literal}标记。
{literal}<script type="text/javascript" src="{/literal}{$SITE_URL}{literal}lightbox/js/prototype.js"></script><br>{/literal}
答案 1 :(得分:3)
另一种解决方案是使用{ldelim}和{rdelim}替换javascript的{和}。 不再需要{literal}。
答案 2 :(得分:0)
在这两个标签之间{literal} ... {/ literal}你不能使用smarty变量或php变量。这个标签提到了smarty编译器,这两个标签之间的代码应该是javascript代码。所以你聪明的变量在那里不起作用。如果您需要使用smarty变量/函数,则应关闭{literal}标记。