用过 Thinkphp 框架的都知道,系统常量在引入的 Js 文件中不会被解析。例如在 Js 文件中有一段代码:

1
$(this).attr("src","__PUBLIC__/Images/logo.png");

运行的时候会发现 __PUBLIC__ 没有被解析,怎么办呢? TP 官方的回答是,引入的外部资源文件是不会被 TP 的模板引擎解析的~ 你需要的话 只能从外部传变量进去。那么我们就可以在模板文件中定义一个变量,用来储存系统常量模板引擎解析后的URL地址。

模板文件代码:

1
<script>var publicUrl = "__PUBLIC__";</script>

JS文件代码:

1
$(this).attr("src",publicUrl+"/Images/logo.png");

这样就可以在Js文件中使用系统常量了;同样也可以PUBLIC换成U()函数等。如果有更好的方法,欢迎评论~

这是一篇过去很久的文章,其中的信息可能已经有所发展或是发生改变。