问题描述:开发项目中在静态页面通过include标签引入公共头部和底部时报模板不存在的错误。
静态页面中引用代码如下:
- {include file="public/footer.html" /}
在解决上述问题时,请大家仔细阅读thinkPHP官方开发文档。https://www.kancloud.cn/manual/thinkphp5/125009
其实这个也不是什么大问题。根据文档描述,include标签引入公共部分时有两种方法,一种是模块控制器方式的加载,一种是全路径方式的加载。所以文档部分不难理解。
而下面是另外一种解决办法。就是静态页面采用上述include方法。thinkPHP模板解析器根据file的值自动定位模板为当前模块视图路径。
打开thinkPHP核心文件Template.php,找到第1080行,添加如下两行代码即可。
- $bbpath = APP_PATH.Request::instance()->module().DS."view".DS.$template;
- $template = file_exists($template)?$template:$bbpath;
后期再引入公共部分的时候只需要把公共部分的页面写在当前模块的视图目录中即可,无需再额外写任何控制器。