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常用函数小技巧
Sep 11 PHP
php adodb连接不同数据库
Mar 19 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
为PHP初学者的8点有效建议
2010/11/20 PHP
PHP得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
Python实现获取某天是某个月中的第几周
2015/02/11 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
幼儿园安全检查制度
2014/01/30 职场文书
工地标语大全
2014/06/18 职场文书
基层党组织整改方案
2014/10/25 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python