WordPress 开发之让浏览器自动加载最新的CSS、JS文件(免刷新缓存)
在开发WordPress 主题的时候,如果频繁更新主题的CSS、JS文件但主题已经上线,如何让访客的浏览器获取最新的CSS、JS文件而非等到浏览器删除缓存后?下面就介绍一个简单的方法。
版本号参数
相信有过开发经验的童鞋都知道是用版本号参数控制。即原来比如说css 文件路径代码是如下面的:
http://devework.com/wp-content/themes/Devework/style.css |
---|
那么如果更新了css 文件,可以为此添加版本号,即改为:
http://devework.com/wp-content/themes/Devework/style.css?v=2 |
---|
但是,在WordPress 中如果每修改一次就要手动更新版本号那太累了。如何让版本号自动更新(即?v=
后面的数字自动更新)?
时间戳
想必你也知道了,用时间戳代替版本号。在WordPress 中,用时间戳代替版本号的处理方式可以更加方便一点。
http://devework.com/wp-content/themes/Devework/style.css?v=<?php echo time(); ?> |
---|
或者:
http://devework.com/wp-content/themes/Devework/style.css?v<?php echo filemtime($pathToCSS); ?>" /> |
---|
WordPress 中呢?
有过WordPress 主题开发经验的都知道,WordPress 中引用主题的styl.css 文件的路径是直接使用函数<?php bloginfo('stylesheet_url'); ?>
的,这么一来,在header.php 中的路径代码如下:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen, projection" /> |
---|
虽然手动修改路径也可以,但我们并不推荐该方法,你可以hook一下该wp_enqueue_style()
函数。
将下面的代码添加到主题的functions.php 文件下即可为styl.css 文件添加时间戳版本号:
add_action( 'wp_enqueue_scripts', 'add_styles' ); function add_styles() { $css_file = get_stylesheet_directory() . '/css/style.css'; wp_enqueue_style( 'css-file', get_stylesheet_directory_uri().'/css/style.css', NULL, filemtime($css_file) ); } |
---|
js文件的话依照上面的照搬即可实现。
如此一来,就能保证浏览器每次访问都是最新的css、js文件,而非采用缓存。
本文参考国外网站paulund,感谢原作者!如有错误,欢迎雅正!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据结构算法操作试题(C++/Python)——有效的括号
- 数据结构算法操作试题(C++/Python)——合并两个有序链表
- Day11 :二进制中1的个数
- 数据结构算法操作试题(C++/Python)——括号生成
- 数据结构算法操作试题(C++/Python)——合并K个排序链表
- 数据结构算法操作试题(C++/Python)——删除排序数组中的重复项
- 数据结构算法操作试题(C++/Python)——k个一组翻转链表
- 数据结构算法操作试题(C++/Python)——移除元素
- 数据结构算法操作试题(C++/Python)——实现strStr()
- 数据结构算法操作试题(C++/Python)——两数相除
- JavaScript 测试系列实战(三):使用 Mock 模拟模块并处理组件交互
- 数据结构算法操作试题(C++/Python)——串联所有单词的子串
- TypeScript 实战算法系列(九):实现向量与矩阵
- TypeScript 实战算法系列(十):实现动态规划
- 数据结构算法操作试题(C++/Python)——下一个排列