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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
浅谈php://filter的妙用
Mar 05 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
PHP扩展类型及安装方式解析
Apr 27 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
Dec 15 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
解析数组非数字键名引号的必要性
2013/08/09 PHP
PHP中的表达式简述
2016/05/29 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
javascript 表单的友好用户体现
2009/01/07 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
JavaScript错误处理操作实例详解
2019/01/04 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
python中正则表达式的使用详解
2014/10/17 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
咖啡馆创业计划书
2014/01/26 职场文书
旅游业大学生创业计划书
2014/01/31 职场文书
廉洁校园实施方案
2014/05/25 职场文书
离职证明标准格式
2014/09/15 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
篮球赛新闻稿
2015/07/17 职场文书
安全生产奖惩制度
2015/08/06 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
Echarts如何重新渲染实例详解
2022/05/30 Javascript