gulp:自动为请求添加版本号以防止浏览器缓存

gulp: Automatically add version number to request for preventing browser cache(gulp:自动为请求添加版本号以防止浏览器缓存)
本文介绍了gulp:自动为请求添加版本号以防止浏览器缓存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过在服务器上使用 gulp 构建源文件来部署我的项目.为防止出现缓存问题,最佳做法是为请求 url 添加一个唯一编号,请参阅:防止浏览器在 Web 应用程序升级时缓存;

I deploy my project by building source files with gulp right on the server. To prevent caching issues, the best practice could be adding a unique number to request url, see: Preventing browser caching on web application upgrades;

在 npm 存储库中,我找不到自动向请求添加版本号的工具.我在问是否有人以前发明过这样的工具.

In npm repositories, I couldn't find a tool for automatically adding version number to request. I'm asking if someone has invented such tool before.

可能的实现如下:

我在 src/ 文件夹中有一个文件 index.html,带有以下脚本标签

I have a file index.html in src/ folder, with following script tag

 <script src="js/app.js<!-- %nocache% -->"></script>

在构建过程中,它被复制到 dist/ 文件夹,并且注释被替换为自增号

During build it is copied to dist/ folder, and comment is replaced by autoincrement number

 <script src="js/app.js?t=1234"></script>

推荐答案

你可以使用 gulp-version-number 为此.它可以通过将参数附加到 URL 来将版本号添加到 HTML 文档中的链接脚本、样式表和其他文件.例如:

You can use gulp-version-number for this. It can add version numbers to linked scripts, stylesheets, and other files in you HTML documents, by appending an argument to the URLs. For example:

<link rel="stylesheet" href="main.css">

变成:

<link rel="stylesheet" href="main.css?v=474dee2efac59e2dcac7bf6c37365ed0">

您甚至不必指定占位符,就像您在示例实现中展示的那样.而且是可配置的.

You don't even have to specify a placeholder, like you showed in your example implementation. And it's configurable.

示例用法:

const $ = gulpLoadPlugins();
const versionConfig = {
  'value': '%MDS%',
  'append': {
    'key': 'v',
    'to': ['css', 'js'],
  },
};

gulp.task('html', () => {
  return gulp.src('src/**/*.html')
    .pipe($.htmlmin({collapseWhitespace: true}))
    .pipe($.versionNumber(versionConfig))
    .pipe(gulp.dest('docroot'));
});

这篇关于gulp:自动为请求添加版本号以防止浏览器缓存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)