使用gulp打包增加hash值,解决浏览器缓存问题

gulp打包项目,css、js自动添加版本号,防止缓存,代理 gulp打包项目,css、js自动添加版本号,防止缓存,http-proxy-middleware代理,改变图片,css,js,html,browserSync自动更新,前后端分离 立即下载

前端项目部署后,用户必须强刷浏览器后才能看到最新的代码(和效果),这种体验不是很好,而有的用户根本不知道强刷浏览器这么一回事。

其实最好的办法就是给js和css增加一个版本号,或者说是一个hash值,看了下使用vue-cli搭建的项目,最后打完包后,都会生成一个随机的hash值。其实就是为了避免缓存。

这里使用gulp 的gulp-rev插件就可以给打包的js或者css增加一个hash值,注意,这里的hash值生成是随机的,这就意味着每个文件带着的hash值是不一样的。

如果希望文件携带的hash值是一样的话,就必须使用gulp-rename 重新命名。

使用完gulp-rev后,js文件名变了,css文件名也变了。在html引入的时候也需要发生变化才行,不然引入就有问题。

这里就要另外一个插件了gulp-rev-collector

gulp.task('js', function() {
  return gulp.src('src/myjs/**/*.js')
  .pipe(babel({
    presets: ['env']
  }))
  .pipe(javascriptObfuscator())
  .pipe(uglify())
  // .pipe(rename({suffix:hashNum}))
  .pipe(rev())
  .pipe(gulp.dest('dist/myjs/'))
  .pipe(rev.manifest())                                   //- 生成一个rev-manifest.json
    .pipe(gulp.dest('dist/rev'))
});

生成的一个json映射表,长这个样子

{
  "attention/myAttention.js": "attention/myAttention-01d5fe6660.js",
  "footer.js": "footer-ca5643ca7d.js",
  "header.js": "header-cb5d6eb816.js",
}

其实就是生成一个映射表,然后按照这个映射表进行替换。

那如果我们用到了统一的hash值的话,在html页面上替换,就需要使用到gulp-replace进行替换了

给引入路径的.js 替换成 hash值+ ‘.js’就可以了

gulp-hash-creator:gulp哈希创建器 gulp-hash-creator 使用md5或sha1获取内容哈希值。 安装 $ npm install gulp-hash-creator --save-dev 用法 对于大口吃 //include gulp var gulp = require ( "gulp" ) ; //include gulp-hash-creator var hashCreator = require ( "gulp-hash-creator" ) ; //hash string content gulp . task ( "hashString" , function ( ) { var value = hashCreator ( { content : "test content" } ) ; console . log ( value ) ; } ) ; // 立即下载

相关推荐

【UE5】【蓝图】 LevelSequence 动画播放与暂停

最近有些工作,在研究UE5 蓝图的LevelSequence,来制作一些简单动画。做个笔记,记录一下动画更换绑定actor的操作,以及动画播放后如何暂停和继续。

UE5开发备忘录 1万+

gulp解决缓存问题 js css代码压缩图片压缩 添加hash

第一次使用gulp真是四处碰壁 我整个整理一下。

weixin_44111879的博客 347

Mooncake架构:基于KVCache解耦的LLM推理优化方案

在大语言模型推理中,KVCache是Transformer解码过程中用于缓存历史Key/Value向量的核心数据结构,它避免了序列重复计算,但会随上下文长度线性增长,成为显存占用的主要部分。其原理是在自回归生成时,将已计算过的注意力键值对存储下来,供后续Token生成时直接使用,从而提升计算效率。这项技术的核心价值在于,通过高效管理KVCache,可以显著降低长序列推理时的显存压力,提升GPU资源利用率。在实际应用场景中,尤其是在处理长上下文对话、高并发请求时,KVCache的管理策略直接决定了服务的吞吐量

weixin_35753431的博客 532

gulp 给静态资源文件添加hash(md5)后缀 防止缓存

第一步,安装所需的包,用npm安装,如下: npm install gulp gulp-rev run-sequence gulp-rev-collector --save-dev 第二步,在gulpfile.js文件中写上配置: //引入gulp和gulp插件 var gulp = require('gulp'), runSequence = require('run-sequen

每天都记录一点点! 1万+

使用扫频信号测量房间脉冲响应

脉冲响应的测量

liuderong0的博客 1765

Qlib上手学习记录

Qlib 是一个面向人工智能的量化投资平台,其目标是通过在量化投资中运用AI技术来发掘潜力、赋能研究并创造价值,从探索投资策略到实现产品化部署。该平台支持多种机器学习建模范式,包括有监督学习、市场动态建模以及强化学习等。真的是走了很多弯路step 1. 使用 ananconda 建立环境,要主要必须是 python 3.8失败的下了以后 进入 glib folder 后执行是会报错的,不管你还什么source 都一样,整了很久使用前最好看下这个。

chenchihwen的专栏 3099

gulp打包项目添加hash值并自动修改引入文件名称

在前端项目部署到服务器之后,用户必须用过强制刷新才能够看到最新的效果,然而大部分用户是并不知道这么一回事的,所以处理这个最好的办法就是每次给我们的css和js文件添加一个随机的hash值,每次变更后都会请求最新的文件。 但有的时候我们通过配置打包后能够自动给css和js添加上hash值,但是html文件里面引入的还是不带有hash的文件,这里就记录一下html自动修改引入文件的方法。 gulpfi...

qq_43364234的博客 1732

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

985小水博的摸鱼日常 3090

glup html文件增加hash,前端静态资源版本更新与缓存——通过gulp 在原html文件上自动化添加js、css、img版本号...

原理1、修改js和css文件2、通过对js,css文件内容进行hash运算,生成一个文件的唯一hash字符串(如果文件修改则hash号会发生变化)3、替换html中的js,css文件名,生成一个带版本号的文件名原html文件代码预期效果:在原目录结构下html文件代码先说说gulp的使用步骤安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配...

weixin_34662372的博客 563

【WRF-Urban数据集】中国60个城市的1 km分辨率城市冠层参数(UCPs)

中国60个城市的1 km分辨率城市冠层参数(UCPs)

WW、forever的博客 1068

FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地

一、环境介绍 操作系统介绍:ubuntu 18.04 FFMPEG版本: 4.4.2 摄像头: USB摄像头、虚拟机挂载本机自带摄像头 二、FFMPEG与X264下载编译 X264下载地址: http://www.videolan.org/developers/x264.html FFMPEG下载地址:https://ffmpeg.org/download.html Yasm ...

8872

gulp解决前端缓存gulp-rev-collector

本文主要介绍gulp解决前端缓存的问题。使用的gulp插件有gulp-rev和gulp-rev-collector。 一、安装依赖 npm install --save gulp-rev npm install --save gulp-rev-collector 二、配置gulpfile.js 2.1引入依赖 var rev = require('gulp-rev'), revColle...

拥抱AI Design 995

把 ABAP Unit 测试放进本地类:让重构更安全、让测试更好找的组织方式

ABAP测试代码组织策略:单元测试与集成测试的合理存放位置 本文针对ABAP开发中测试代码组织混乱的问题,提出了一套系统化的解决方案: 单元测试应存放在被测类的本地测试include中(...CCAU或...T99),确保测试与代码同步演进且易于发现 跨对象测试(组件/集成/系统测试)应创建单独的全局测试类,并通过FOR TESTING和ABSTRACT进行防护 使用! @testing注释建立测试关系,使测试与被测对象明确关联,提高可发现性 针对不同技术栈(RAP/CAP/OData)提供了具体落地建议,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1729

使用gulp对完成的项目进行最后打包操作 gulp-rev gulp-rev-collector

前言 在一个项目开发完成后,我们需要对代码进行压缩打包,并且将开发环境的代码跟生产环境中的代码区分开。除此之外,还要注意浏览器的缓存问题,如果更改了css文件或者是js文件,浏览器在打开项目的时候依然会先从本地缓存中读取这些外部引用的文件,导致更改的文件没有生效,看不到效果。为了解决这个问题,保证每次更改文件后,浏览器总是能去获取最新的文件,我们可以使用 gulp-rev 和 gulp-rev-c...

蒲公英芽的博客 1883

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

gulp不生成打包文件_gulp插件解决浏览器缓存问题

一、前言有些简单前端小项目,不需要涉及框架,前端打包压缩的话本妹子还是喜欢用gulp。 本文将用gulp-rev和gulp-rev-rewrite解决cdn缓存问题。 以及列出的是本妹子最常用的gulp插件,小伙伴们可以参考。 案例地址:https://github.com/raoenhui/gulpExample.git二、解决浏览器缓存问题gulp-rev1.为静态文件添加唯一hash值,如 ...

weixin_28831461的博客 432

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【重要总结】使用gulp来解决浏览器缓存的问题。还有遇到的bug。missing script: gulp和Task function must be specified

开始浏览器缓存,我们是在css 和js后面加上随机数。 <script type="text/javascript"> document.write('<link href="test.css?ver="'+Math.random()+' ref="stylesheet"/>');   document.write('<script src="test....

肖肖肖丽珠的博客 806

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

gulp不生成打包文件_Gulp解决发布线上文件(CSS和JS)缓存问题

Gulp解决发布线上文件(CSS和JS)缓存问题本文的缘由:目前经常线上发布文件后要不断的刷新页面及过很长时间,页面上的CSS和JS文件才能生效,特别对于目前做微信商城的时候,微信内置的浏览器缓存非常的严重,之前我们经常是在文件后面加上时间戳的方式来解决线上发布后的缓存问题,但是在微信浏览器内并不生效;因此我们需要改变文件名的方式来解决缓存的问题,因此使用后缀名加上MD5一连串的字符串来解决缓存的...

weixin_39900045的博客 296

gulp html 缓存,gulp解决浏览器缓存问题

给请求的文件加上唯一的版本号,这样浏览器就会加载新文件,防止因缓存产生的问题。下面是用gulp-rev生成md5签名,构建好的文件名会加上md5签名,同时生成一个json用来保存文件名路径对应关系。安装插件npminstall--save-devgulpnpminstall--save-devgulp-revnpminstall--save-devgulp-rev-collect...

weixin_29163581的博客 191

gulp自动构建,解决js、css浏览器缓存问题

在 js、css 文件名称加上 has 值,解决浏览缓存问题。

Mo_jon的博客 188

gulp怎样处理html里面图片缓存,gulp-rev 解决html缓存问题

缓存缓存一句话概括 :用户浏览过的网站会被存储到浏览器的缓存中,下次打开时候不消耗流量 , 让用户更快速的访问网站资源对开发者万恶 , 对用户友好由于浏览器会缓存相应的html和图片 , 这样就会造成当前浏览器监听到当前文件名称不变的情况就会使用缓存相应的资源 , 开发者更新的部分不会被重复加载,这就是相当于用户那边看到的和开发者看到的不一样gulp-rev 是如何解决缓存的一个html有一个 i...

weixin_42301008的博客 195

gulp-rev进阶技巧:解决资源缓存问题的终极方案

在Web开发中,浏览器缓存常常导致用户无法获取最新的静态资源,影响网站更新体验。**gulp-rev**作为一款强大的静态资源版本控制工具,通过为文件名添加内容哈希值(如`unicorn.css`→`unicorn-d41d8cd98f.css`),帮助开发者彻底解决资源缓存难题。本文将分享使用gulp-rev的进阶技巧,让你的前端项目缓存管理更高效! ## 📦 快速上手:安装与基础配置 #

gitblog_01018的博客 895

gulp怎样处理html里面图片缓存,gulp管理静态资源缓存

前端项目在版本迭代的时候,难免会遇到静态缓存的问题,明明开发的是ok的,但是一部署到服务器上,发现页面变得乱七八糟,这是由于静态缓存引起的。从上面这张图片可以看出,浏览器加载css,js等资源时,size一栏是from cache,也就是直接使用了本地的资源,而没有向服务器请求。这样做的好处是提升页面渲染速度,坏处是当服务器的对应的文件发生变化时,浏览器却还是使用缓存,造成布局混乱的问题。解决办法...

weixin_31904867的博客 244

基础的gulp配置,为文件名添加md5后缀防止缓存

基础的gulp配置,为文件名添加md5后缀防止缓存 网站在不断更新时,若不加文件名后缀很容易造成更新后,用户没有及时获取到最新版本。这因为客户端有缓存造成的,于是,我们可以打包时给文件加个后缀,让文件名每次都有小小的不同,客户端就会及时下载最新文件,解决缓存问题。 var gulp = require('gulp') var rev = require('gulp-rev')//加入md5后缀 v...

楠辞琦咎 难上加楠 出琦止胜 943

gulp-manifest 项目常见问题解决方案

gulp-manifest 项目常见问题解决方案 项目基础介绍 gulp-manifest 是一个用于生成 HTML5 应用程序缓存清单文件的 Gulp 插件。该插件的主要功能是帮助开发者自动生成 manifest 文件,以便浏览器能够缓存应用程序的资源,从而提高应用的加载速度和离线访问能力。该项目主要使用 JavaScript 语言编写,适用于前端开发者在构建工具链中集成缓存功能。 新手使用注意...

gitblog_00875的博客 770

gulp-rev:项目部署缓存解决方案----gulp系列(六)

原文链接:http://www.cnblogs.com/1wen/p/5421212.html 引言:   前端工程化部署比较重要考虑的一个问题是缓存 ,可以参考 《变态的静态资源缓存与更新》。   使用gulp-rev解决的就是《变态的静态资源缓存与更新》提出的问题。 rev会做什么:   根据静态资源内容,生成md5签名,打包出来的文件名会加上md5签名,同时

4441

gulp打包普通项目

第一步:npm init 生成一个page.json第二步建立一个gulpfile.js文件主要是写这个文件 var gulp = require('gulp'), rev = require('gulp-rev-append'), fs = require('fs'), fse = require('fs-extra'), path = requir...

weixin_30861797的博客 332
上一篇: 彻底解决js计算精度问题math.js
下一篇: 前端判断用户活跃情况,长时间不活跃自动退出登录
cofecode
博客等级 码龄9年 43粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值