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 数组实例说明
Aug 18 PHP
PHP中echo和print的区别
Aug 28 PHP
php实现过滤UBB代码的类
Mar 12 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
php图片添加水印例子
Jul 20 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 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
Ajax PHP分页演示
2007/01/02 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
Bootstrap基础学习
2015/06/16 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
5款非常棒的Python工具
2018/01/05 Python
对Python中画图时候的线类型详解
2019/07/07 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
Python实现验证码识别
2020/06/15 Python
python 模拟登陆163邮箱
2020/12/15 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
JPA的特点
2014/10/25 面试题
年终考核评语
2014/01/19 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
员工试用期工作总结
2019/06/20 职场文书
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS