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实现框架(一)
Oct 09 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
关于初学PHP时的知识积累总结
Jun 07 PHP
使用php实现截取指定长度
Aug 06 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
PHP+redis实现添加处理投票的方法
Nov 14 PHP
php简单的上传类分享
May 15 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
PHP实现一维数组与二维数组去重功能示例
May 24 PHP
PHP实现唤起微信支付功能
Feb 18 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 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
php 小乘法表实现代码
2009/07/16 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
Angular工具方法学习
2016/12/26 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
python快速查找算法应用实例
2014/09/26 Python
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python每天必学之bytes字节
2016/01/28 Python
使用tensorflow实现线性svm
2018/09/07 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
JPA面试常见问题
2016/11/14 面试题
UNIX命令速查表
2012/03/10 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
大学生素质拓展活动方案
2014/02/11 职场文书
党员民主评议自我评价
2014/10/20 职场文书
大客户经理岗位职责
2015/04/09 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技