Thinkphp 框架中系统常量在 Js 文件中不解析的解决方法
用过 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()函数等。如果有更好的方法,欢迎评论~
这是一篇过去很久的文章,其中的信息可能已经有所发展或是发生改变。
原文作者: her-cat
原文链接: https://her-cat.com/2016/01/27/thinkphp-tpl-const.html
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议