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
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
抓取并下载CSS中所有图片文件的php代码
Sep 26 PHP
深入php数据采集的详解
Jun 02 PHP
ThinkPHP实现一键清除缓存方法
Jun 26 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php获取发送给用户的header信息的方法
Mar 16 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
php检查页面是否被百度收录
Oct 28 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PDO::quote讲解
Jan 29 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
php获取url参数方法总结
2014/11/13 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
详解Python中with语句的用法
2015/04/15 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
python搜索指定目录的方法
2015/04/29 Python
python函数的5种参数详解
2017/02/24 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
Pyqt5自适应布局实例
2019/12/13 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
奠基仪式主持词
2014/03/20 职场文书
财务部绩效考核方案
2014/05/04 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
领导工作表现评语
2015/01/04 职场文书
家属答谢词
2015/01/05 职场文书
小英雄雨来观后感
2015/06/09 职场文书
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript