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 url地址栏传中文乱码解决方法集合
Jun 25 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
如何用php获取程序执行的时间
Jun 09 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
ThinkPHP模版中导入CSS和JS文件的方法
Nov 29 PHP
php读取文件内容的方法汇总
Jan 24 PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
python多线程扫描端口示例
2014/01/16 Python
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
HTML5标签小集
2011/08/02 HTML / CSS
挂靠协议书范本
2014/04/22 职场文书
学校百日安全活动总结
2015/05/07 职场文书
初二物理教学反思
2016/02/19 职场文书
初一语文教学反思
2016/03/03 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python
服务器nginx权限被拒绝解决案例
2022/09/23 Servers