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,感谢原作者!如有错误,欢迎雅正!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术墨客

构建用于生产的React静态化单页面服务 原

React 作为一项热门的前端开发技术,现在使用它的团队越来越多。之前也介绍了react 的所有的特性,但是仅仅了解怎么开发 react 只走了万里长征的第一步...

5254
来自专栏进击的君君的前端之路

从 URL 输入到页面展现发生了什么

1654
来自专栏Youngxj

sitemap插件(自适应站点优化)

1812
来自专栏Android干货

网页一键加入QQ群

4165
来自专栏指路者

如何远程控制局域网内的电脑评论(0)

,比如在公司有的同事有某个问题上不会解决,需要用到远程控制帮他操作。还有很多的游戏代练公司需要由一个人同时操作好几台的电脑,在每台电脑上都登录着不同的游戏账号进...

1272
来自专栏十月梦想

node读取html文件

node和Apache是没有web容器的,node的目录下的同级文件是无法使用/filename进行访问的,因为node没有根目录门也没用web容器!

1352
来自专栏散尽浮华

Gitlab可视化代码树插件-Octotree

Octotree 是国外程序员Buu Nguyen 做的一个 Chrome 插件。安装之后可以可视化在线浏览托管在Github或Gitlab上( 2.0.1版本...

1.3K8
来自专栏云计算教程系列

如何在CentOS 7上使用InfluxDB分析系统指标

InfluxDB是一个时间序列,指标和分析数据库。时间序列数据库旨在解决存储在一段时间内进行的连续测量所产生的数据的问题。此数据可能包含系统指标(如CPU和内存...

1591
来自专栏Script Boy (CN-SIMO)

CenOS下firefox browser (火狐浏览器)无法播放网页音乐的解决方法

新装载的Firefox或许无法播放网页音频,解决方法如下:           1. 下载并安装 flashplayer插件&&下载网址:https://ge...

2040
来自专栏云计算教程系列

如何在Ubuntu 14.04上保护WordPress免受XML-RPC攻击

WordPress是一个流行且功能强大的CMS(内容管理系统)平台。它的受欢迎程度可能会以专门针对WordPress网站的恶意流量形式引起不必要的关注。

420

扫码关注云+社区

领取腾讯云代金券