Wordpress教程丨更新Css文件缓存

Wordpress教程丨更新Css文件缓存,第1张

Wordpress主题站更新CSS/JS等文件缓存时,我们可以用:wp_enqueue_script  函数进行CSS/JS版本号的定义,实现定义后我们可以在CSS/JS文件更新后得知主题站缓存: 

Wordpress教程丨更新Css文件缓存,第2张

版本号会链接在css/js完整路径的后面,一般在版本号变更后,css/js载入的样式的完整URL也会变更,浏览器发现URL变更会重新请求css/js文件,这样就能达到载入最新的css/js文件。
 
但是很多代理软件(比如squid)并不支持”?“号形式的cache,我们在使用反向代理来cache我们的网站时,特别在squid3.0以后,已经开始不对带”?”号的url进行缓存了。所以我们如果要使用squid的缓存功能就必须去掉”?”,更新squid代理商的缓存只能通过修改文件名来实现。
 
以下我们将介绍在wordpress通过对版本号的控制来修改js/css文件名从而能够在代理软件中达到缓存的目的:

1、在我们的主题代码functions.php文件中添加如下代码:


/** 

 * Description: wordpress在代理(squid)中更新css/js文件缓存的方法

 * Author:wordpress教程网

 * Author URI: http://www.baisheng999.com/

 */

function ds_filename_based_cache_busting( $src ) {

// 管理员的后台css/js文件无需处理

if ( is_admin() )

return $src;

//将版本号添加到文件名中已”.“号来区分

return preg_replace(

'/\.(js|css)\?ver=(.+)$/',

'..',

$src

);

}

add_filter( 'script_loader_src', 'ds_filename_based_cache_busting' );

add_filter( 'style_loader_src', 'ds_filename_based_cache_busting' );


2、 如果你使用的是apache服务器,在你的根目录的.htaccess文件下添加:

<IfModule mod_rewrite.c>

      RewriteEngine On

      RewriteBase /


      RewriteCond %{REQUEST_FILENAME} !-f

      RewriteCond %{REQUEST_FILENAME} !-d

      RewriteRule ^(.+)\.(.+)\.(js|css)$ . [L]

</IfModule>

3、如果你是nginx服务器配置如下:

location ~ ^(.+)\.(.+)\.(js|css)$ {

    alias .;

}

以上就是关于主题站更新CSS/JS等文件缓存的方法
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Wordpress教程丨更新Css文件缓存

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情