ThinkPhp 5.0 CSS,JS文件添加时间戳
来源:互联网 发布:makerbot软件下载 编辑:程序博客网 时间:2024/06/05 17:32
为了使CSS和JS等静态文件修改后客户端可以自动更新,一般会在文件名后面加个参数。加参数的工作可以手动完成,当然使用代码完成更方便一点。
PHP中获取文件的修改时间可以用
int filemtime($file)但是直接在模板文件中写
<link type="text/css" href="/static/css/list.css?tid={:filemtime('/static/css/list.css')}"/>
的话得到的是错误:找不到文件。因为filemtime接收的是一个绝对路径,不能用相对路径。ThinkPHP好像没有提供相对路径的辅助函数。所以经过研究后决定自己写个自定义函数获取时间戳。
在模板使用自定义函数不同的ThinkPHP版本有不同的用法,有的要在/common/common.php中定义,有的是在/common/function.php中定义。在ThinkPHP5.0中,应该在/common.php中定义,也就是直接在application文件夹下的common.php中定义。common.php内容如下
为了方便获取static的绝对路径,可以在/public/index.php中定义APP_STATIC:function stamp($file){ $path=APP_STATIC.$file; return "/static/".$file."?tid=".filemtime($path);}
// 定义应用目录define('APP_PATH', __DIR__ . '/../application/');define('APP_EXTEND', __DIR__ . '/../extend/');define('APP_STATIC',__DIR__.'/../public/static/');// 加载框架引导文件require __DIR__ . '/../thinkphp/start.php';这样可以直接在模板中用
<link type="text/css" rel="stylesheet" href="{:stamp('css/list.css')}"/>来获取时间戳,执行后是这个样子:
那能不能在ThinkPHP5的css标签中使用时间戳呢?像这样:
{css href="{:stamp('css/list.css')}"/}
很遗憾,不能,这样会报错,可能是模板标签没有考虑到这种情况,期待下个版本能改善吧总结:
ThinkPHP5在模板中使用时间戳可以这样操作:
1.在/public/index.php中定义APP_STATIC路径:
define('APP_STATIC',__DIR__.'/../public/static/');2.在/application/common.php中定义时间戳函数:
3.在模板文件中如下使用:function stamp($file){ $path=APP_STATIC.$file; return "/static/".$file."?tid=".filemtime($path);}
<link type="text/css" rel="stylesheet" href="{:stamp('css/list.css')}"/>
0 0
- ThinkPhp 5.0 CSS,JS文件添加时间戳
- thinkphp自动添加时间戳
- 添加css和js文件
- 添加css和js文件
- Thinkphp html文件 js文件 css文件路径问题
- thinkphp 包含外部js文件,css文件方法
- JS包含js文件 动态添加css
- thinkphp中如何导入js和css文件
- Html动态添加css js文件
- js,css加时间戳
- ThinkPHP框架模板文件中导入css,js文件相关问题
- ThinkPHP视图引入CSS、JS、image文件的路径新玩法
- 为js和css文件自动添加版本号
- Django添加JS,CSS,图片等外部文件的方法
- js动态添加css
- magento 添加css js
- magento 添加css js
- CSS JS 添加版本号
- 5.nginx学习笔记:nginx+php
- 链表反序
- CSDN-markdown编辑器
- 初学JS值之用JS实现鼠标移入移出事件
- [51nod1655]染色问题
- ThinkPhp 5.0 CSS,JS文件添加时间戳
- 【rabbitMQ 用法】
- CNN实战
- 回形填数与蛇形填数问题(Java)
- js创建对象的方法以及优缺点
- Leetcode 16 3Sum Closest
- bootsrapValidator表单验证
- Android学习之Paint图形图像处理(一)
- laravel5使用中间件时ErrorException in Route.php line 194