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读取flv文件的播放时间长度
Sep 03 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
PHP实现微信公众平台音乐点播
Mar 20 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
Laravel学习教程之路由模块
Aug 18 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 PHP
php5与php7的区别点总结
Oct 11 PHP
laravel 创建命令行命令的图文教程
Oct 23 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 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
FleaPHP的安全设置方法
2008/09/15 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
php报错502badgateway解决方法
2019/10/11 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
图片之间的切换
2006/06/26 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python实现最常见加密方式详解
2019/07/13 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
高校生生产实习自我鉴定
2013/09/21 职场文书
本科生学习总结的自我评价
2013/10/02 职场文书
小学教学随笔感言
2014/02/26 职场文书
职业生涯规划书前言
2014/04/15 职场文书
预备党员个人总结
2015/02/14 职场文书
会计求职信怎么写
2015/03/20 职场文书
欠款起诉书范文
2015/05/19 职场文书
教师读书笔记
2015/06/29 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers