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制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
PHP解析RSS的方法
Mar 05 PHP
WordPress网站性能优化指南
Nov 18 PHP
实现PHP搜索加分页
Oct 12 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
Apr 13 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 file_get_contents设置超时处理方法
2013/09/30 PHP
php实现的日历程序
2015/06/18 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
python随机生成指定长度密码的方法
2015/04/04 Python
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
Python列表切片常用操作实例解析
2019/12/16 Python
python实现超级马里奥
2020/03/18 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
大学校运会广播稿
2014/02/03 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
逃课检讨书范文
2015/05/06 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python