今天写PHP的smarty模板文件时直接在模板中写的js代码,没加{literal}{literal},运行并没有报错,为什么

JavaScript012

今天写PHP的smarty模板文件时直接在模板中写的js代码,没加{literal}{literal},运行并没有报错,为什么,第1张

一般配置smarty的分隔符用{},如下代码:

$smarty_template_dir   ='./templates/'

$smarty_complie_dir    ='./templates_c/'

$smarty_config_dir     ='./configs/'

$smarty_cache_dir      ='./cache/'

$smarty_caching        = FALSE

$smarty_delimiter      =explode("|","{|}")

如果代码不是explode("|","{|}")

那在模板上直接写js文件{}也不会报错。

很明显, 你还没有了解程序执行的顺序.

smarty运行在服务端,JS运行在客服端. 所以smarty先执行,而JS后执行

那么smarty先执行的情况下,vid 这个是JS的变量,在这个时候是没有值的,

smarty当然把把作为string来处理了.

和在html中用法一样,可能是要用smarty语法把CSS文件包含进去,如果你直接写在网页里面可能是不行,还有就是要注意路径的问题,因为smarty 是模板和动态文件分开的,你要注意一下路径,是不是正确