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 相关文章推荐
BBS(php &amp; mysql)完整版(八)
Oct 09 PHP
PHP个人网站架设连环讲(一)
Oct 09 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
php自动加载机制的深入分析
Jun 08 PHP
PHP中数组定义的几种方法
Sep 01 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
smarty的section嵌套循环用法示例
May 28 PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHP页面跳转实现延时跳转的方法
Dec 10 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 PHP
php 的多进程操作实践案例分析
Feb 28 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
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
python插入数据到列表的方法
2015/04/30 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
浅谈python中get pass用法
2019/03/19 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
python进阶之自定义可迭代的类
2019/08/20 Python
深入浅析python的第三方库pandas
2020/02/13 Python
python 实现逻辑回归
2020/12/30 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
毕业生个人求职信范例分享
2013/12/17 职场文书
工作表扬信的范文
2014/01/10 职场文书
大学毕业感言200字
2014/03/09 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
看上去很美观后感
2015/06/10 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js
TS 类型收窄教程示例详解
2022/09/23 Javascript