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 相关文章推荐
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
PHP四大安全策略
Mar 12 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
PHP实现时间日期友好显示实现代码
Sep 08 PHP
smarty模板的使用方法实例分析
Sep 18 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
js change,propertychange,input事件小议
2011/12/20 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
python中reload(module)的用法示例详解
2017/09/15 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
python3个性签名设计实现代码
2018/06/19 Python
详解django自定义中间件处理
2018/11/21 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
信息管理专业推荐信
2013/10/29 职场文书
高中毕业自我鉴定
2013/12/13 职场文书
给男朋友的道歉信
2014/01/12 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
一年级小学生评语大全
2014/12/25 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Django中的JWT身份验证的实现
2021/05/07 Python