现在的位置:首页>wordpress>正文

不用刷新缓存,WordPress让浏览器自动加载最新的CSS、JS文件

2016年11月07日 ⁄ 共 1541字 评论 1 条

相信很多朋友都在自己的wordpress程序中,安装缓存插件,部落自己也安装了一个WP Super case,如果我们在更新WP的CSS样式文件,或者其它文件,比如JS文件等时,我们需要去清除一些缓存来查看效果,那么如何让访客的浏览器获取最新的CSS、JS文件而非等到浏览器删除缓存后去自动获取呢,这里部落找了网上一个方法。

版本号参数

相信有过开发经验的童鞋都知道是用版本号参数控制,即原来比如说css 文件路径代码是如下面的:

  1. http://www.mfbuluo.com/wp-content/themes/Devework/style.css

那么如果更新了css 文件,可以为此添加版本号,即改为:

  1. http://www.mfbuluo.com/wp-content/themes/Devework/style.css?v=2

但是,在WordPress 中如果每修改一次就要手动更新版本号那太累了。如何让版本号自动更新(即?v=后面的数字自动更新)?

时间戳

想必你也知道了,用时间戳代替版本号。在WordPress 中,用时间戳代替版本号的处理方式可以更加方便一点。

  1. http://www.mfbuluo.com/wp-content/themes/Devework/style.css?v=<?php echo time(); ?>

也可以如下:

  1. http://www.mfbuluo.com/wp-content/themes/Devework/style.css?v<?php echo filemtime($pathToCSS); ?>" />

部落之前在七牛云存储配合WP Super Cache使用教程和一些问题汇总一篇文章中提到过七牛云的缓存刷新,其中就有时间戳强制更新的方法。

WordPress让浏览器自动加载最新的CSS、JS文件

有过WordPress 主题开发经验的都知道,WordPress 中引用主题的styl.css 文件的路径是直接使用函数的<?php bloginfo('stylesheet_url');?>,这么一来,在header.php 中的路径代码如下:

  1. <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen, projection" />

虽然手动修改路径也可以,但我们并不推荐该方法,你可以hook一下该wp_enqueue_style() 函数。

将下面的代码添加到主题的functions.php 文件下即可为styl.css 文件添加时间戳版本号:

  1. add_action( 'wp_enqueue_scripts', 'add_styles' );
  2. function add_styles()
  3. {
  4.      $css_file = get_stylesheet_directory() . '/css/style.css';
  5.      wp_enqueue_style( 'css-file', get_stylesheet_directory_uri().'/css/style.css', NULL, filemtime($css_file) );
  6. }

js文件的话依照上面的照搬即可实现。

如此一来,就能保证浏览器每次访问都是最新的css、js文件,而非采用缓存。

小结

文章中的方法来源自网络,由免费部落整理发布。

部落的右侧边栏上有几个商家的广告位,经常会有更换广告图片内容的,经常会因为缓存的问题,需要搞好几次,主要原因是部落还用了七牛的去存储,加上WP自身的缓存文件,有时候会出现一些不同步的情况,希望这个方法对一些改css,JS文件的朋友用得上。

评论 1 条 评论内容很精采,有内幕,而且绝对有干货

  1. 香港云服务器 2016年11月07日 15:45  @回复  Δ-49楼 回复

    不用刷新缓存,WordPress让浏览器自动加载最新的CSS、JS文件,这种方法解决缓存,智能多了

给我留言