总的来说,要使在thinkphp框架下面HTML导入的图片、css文件和js文件有效,只有两种方法:(1)使用绝对路径;(2)在项目目录下创建新目录Public,把所有的img文件夹、js文件夹和css文件夹放在里面,同时把原有的HTML中的导入路径前面统一加上“__PUBLIC__/子目录/”,比如如果在Public目录下又建了新的子目录hello,假如我们把原来的img文件夹放在hello目录下面,则在HTML中的图片导入路径应从“img/xxx.jpg”改为“__PUBLIC__/hello/img/xxx.jpg”,js和css也是一样。
注意:只能把目录名定为Public,这是thinkphp内置的规则。同时,只有__PUBLIC__才是本地目录。我们知道,thinkphp的模板目录替换还有:__ROOT__、__APP__、__GROUP__、__URL__、__ACTION__以及__SELF__(注意下划线全都是一边两条,即__),但这些模板替换都会涉及入口文件index.php,采用的话都会导致错误。只有__PUBLIC__才是本地路径的正确方式。
附1:模板替换
__PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/__ROOT__: 会替换成当前网站的地址(不含域名)
__APP__: 会替换成当前项目的URL地址 (不含域名)
__GROUP__:会替换成当前分组的URL地址 (不含域名)
__URL__: 会替换成当前模块的URL地址(不含域名)
__ACTION__:会替换成当前操作的URL地址 (不含域名)
__SELF__: 会替换成当前的页面URL