如何获得gulp构建版本以使用PHP自动刷新CSS缓存

我正在使用gulp构建任务来合并并缩小多个CSS文件,并将其压缩为一个名为app.min.css的文件。

接下来,在Wordpress中,我使用以下代码来包含css文件:

 $version = '2.6';
 wp_enqueue_style( 'app.min',get_template_directory_uri() . '/assets/css/dist/app.min.css',array(),$version );

但是不幸的是,每次我要发布新版本app.min.css时,我都需要手动更新版本号。这样一来,WordPress便可以理解它已经为客户端浏览器提供了一个新的CSS文件。

是否有可能检测到新的gulp构建版本。因此,我不必手动告诉Wordpress它需要刷新当前样式表吗?

// conceptual code
$version = getLatestGulpBuildVersion();
shabisb1006810086 回答:如何获得gulp构建版本以使用PHP自动刷新CSS缓存

我实际上在今天的工作中找到了解决此问题的方法。这可能不是最好的方法,但是可以。

gulp build任务结束时,您可以使用version.txt包创建一个gulp-file文件:

function deploy_version(dist_path) {
    let uniqueVersion = Date.now() + ( (Math.random() * 100000).toFixed());

    return gulp.src('src/**')
        .pipe(file('version.txt',uniqueVersion.toString()))
        .pipe(gulp.dest(theme_path + dist_path));
}

在构建完成后调用此函数,如下所示:

// build app.min.css
gulp.task('build-custom-css',function () {

   // ...
   // building stuff...

   deploy_version('assets/css/dist/');
 });

这样,JS和CSS生产dist文件夹的dist文件夹中就有一个version.txt文件。内容像一个唯一的数字,例如157295773737144587

现在在functions.php中,我们可以像这样简单地将版本加载到$version变量中:

$version = file_get_contents( get_template_directory_uri() . '/assets/css/dist/version.txt' );
wp_enqueue_style( 'app.min',get_template_directory_uri() . '/assets/css/dist/app.min.css',array(),$version );

通过上载dist文件之类的新构建文件来app.min.css文件夹。我们还上传了version.txt文件,其中包含新的唯一版本号。这样,浏览器将被迫自动重新加载css文件。

本文链接:https://www.f2er.com/3160371.html

大家都在问