为了账号安全,请及时绑定邮箱和手机立即绑定

ThinkPHP5.1如何在模版中输出public/static静态资源文件的URL路径?

ThinkPHP5.1如何在模版中输出public/static静态资源文件的URL路径?

PHP
弑天下 2019-03-13 17:47:19
因为这个项目有可能不放在WEB根目录,会放在子目录中,也有可能会经常修改服务器的IP(这个项目在外网和内网都有开放,但是外网和内网开放的URL不同,甚至还做了虚拟目录,这个需求确实有点奇怪),所以不能写死在模版里面 我试过$_SERVER的script_filename,script_name,pathinfo,REQUEST_URI等变量,他们在使用了pathinfo之后,会把pathinfo的信息也带入进去,导致使用dirname获取这些变量所在目录,获取到的并不是真实的index.php所在的public目录的URL 而且也不能通过判断url中的index.php来确定,因为有可能服务器还做了URL重写,不一定在URL中存在index.php这个字符串,不能通过字符串切割来解决。 假如当前页面是192.168.1.1/subDir/index.php/index/admin/test,那么直接在模版里面写static/js/的话会被浏览器解析到192.168.1.1/subDir/index.php/index/admin/test/static/js/上,所以这种方法无效 有什么其他办法能获取public/static静态资源文件的URL路径吗? 我试过直接在模版里面写__STATIC__或者__ROOT__,结果都是直接浏览器里面原样输出
查看完整描述

4 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

你可以全局定义一些js变量,像这样把模板变量放进去就好了
https://img1.sycdn.imooc.com//5c8f4221000190d808000180.jpg

https://img1.sycdn.imooc.com//5c8f4224000171bb08000329.jpg

查看完整回答
反对 回复 2019-03-18
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

    // 视图输出字符串内容替换
    'view_replace_str'       => [
        '__ADMIN__'=>'/static/admin',
    ],

在config.php 里加个自定义路径就可以了

https://img1.sycdn.imooc.com//5c8f42250001c9fa05870072.jpg

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 5130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信