ThinkPHP模板引擎之导入资源文件方法详解


Posted in PHP onJune 18, 2014

一般而言,网页传统方式的导入外部JS和CSS等资源文件的方法是直接在模板文件使用:

<script type='text/javascript' src='/Public/Js/Util/Array.js'>
<link rel="stylesheet" type="text/css" href="/App/Tpl/default/Public/css/style.css" />

ThinkPHP的模板引擎提供了专门的标签来简化上面的导入。

1.import标签

第一个是import标签 ,导入方式采用类似ThinkPHP的import函数的命名空间方式,例如:

<import type='js' file="Js.Util.Array" />

Type属性默认是js, 所以下面的效果是相同的:

<import file="Js.Util.Array" />

还可以支持多个文件批量导入,例如:

<import file="Js.Util.Array,Js.Util.Date" />

导入外部CSS文件必须指定type属性的值,例如:

<import type='css' file="Css.common" />

上面的方式默认的import的起始路径是网站根目录下的Public目录,如果需要指定其他的目录,可以使用basepath属性,例如:

<import file="Js.Util.Array" basepath="./Common" />

如果导入的文件中含有“.”号,则可以采用:

<import file="Js.Util.Array#min" />

表示导入 /Public/Js/Util/Array.min.js 资源文件。

还支持资源文件的版本号导入,例如:

<import type='js' file="Js.Util.Array?v=120" />

在导入多个文件的时候也可以支持

<import type='js' file="Js.Util.Array?125,Js.Util.Date?130" />

improt标签支持判断加载,例如下面首先判断name变量是否设置:

<import type='js' file="Js.Util.Array" value="name" />

或者更复杂的,甚至可以采用函数

<import type='js' file="Js.Util.Array" value="Think.get.name|isset" />

编译后的模板缓存是:

<?php
if(isset($_GET['name'])): 
?>
<script type="text/javascript" src="/Public/Js/Util/Array.js"></script>
<?php
endif;
?>

2.load标签

第二个是load标签,通过URL方式导入当前项目的公共JS或者CSS,例如:

<load href="/Public/Js/Common.js" />
<load href="/Public/Js/Date.js?v=235" />
<load href="/Public/Css/common.css" />

在href属性中可以使用特殊模板标签替换,例如:

<load href="!-PUBLIC-!/Js/Common.js" />

Load标签无需指定type属性,系统会自动根据后缀自动判断。
当然,load标签也支持条件判断调用:

<load href="/Public/Js/Common.js" value="name" />

系统还提供了两个标签别名js和css 用法和load一致,例如:

<js href="/Public/Js/Common.js" />
<css href="/Public/Css/common.css" />

load标签也支持同时导入多个资源文件,甚至是不同类型的资源文件

<load href="/Public/Js/Common.js,/Public/Css/common.css" />
PHP 相关文章推荐
PHP在不同页面间传递Json数据示例代码
Jun 08 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
php中删除、清空session的方式总结
Oct 09 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
php面向对象程序设计入门教程
Jun 22 PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 PHP
Laravel配合jwt使用的方法实例
Oct 25 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 #PHP
ThinkPHP CURD方法之data方法详解
Jun 18 #PHP
ThinkPHP CURD方法之order方法详解
Jun 18 #PHP
ThinkPHP CURD方法之table方法详解
Jun 18 #PHP
ThinkPHP CURD方法之page方法详解
Jun 18 #PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 #PHP
ThinkPHP CURD方法之where方法详解
Jun 18 #PHP
You might like
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
php设计模式小结
2013/02/15 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
显示、隐藏密码
2006/07/01 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
python游戏地图最短路径求解
2019/01/16 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
如何真正的了解python装饰器
2020/08/14 Python
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
linux面试题参考答案(9)
2015/01/07 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
学校捐书倡议书
2015/04/27 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python