首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在缓存上小踩一坑

最近自己做了个新系统,叫做ultron,第一次独自完成一个项目,中间也遇到一些问题,想分享一下今天遇到的一个小问题。

代码发布上线的时候,经常会因为浏览器缓存所以要强刷才能生效,所以就在项目里加了HtmlWebpackPlugin,设置了hash等于true来避免这个问题。

不准备说因为第一次做这个遇到的各种问题,主要是想说,配置好了之后,偶尔还是会出现刷新不成功的问题。

之前偷偷的测了一下,结果没有复现,因为项目已经交接了,所以中间也不太方便去做测试。这周刚好对方的前端妹子休假了,让我帮着照顾一周。中间做一些改动的时候又复现了这个问题,就仔细的研究了一下。

情况是这样的,上线代码之前,就记录了一下当前文件的hash值,上线之后,刷新页面,发现hash值并没有改变,页面未更新。强刷页面后,页面更新了,但hash值仍没有改变。

我以为是生成的hash出了问题,我在本地测试了一下,生成的hash没有问题,于是猜测是服务器上的webpack的版本可能不太对,所以生成的有问题(这里我应该先看一下服务器的log的)。

结果服务器也是很诡异,看不到webpack的版本,重装了webpack,成功了,但还是看不到。换成root用户,看不到。删掉所有的包重新装,看不到。在这纠结了一阵,没有研究明白,试了一下别的包,都看不到,就没有继续死磕(希望知道的大佬可以告诉我,虽然公众号文章还没有回复功能……)

这时候回到页面上,随手刷新了一下,发现之前上线完没有变的hash居然改变了??

和师兄分享了这个惊奇的发现之后,才知道原来编译后生成的js的名称就是index.js,之前一直以为后面是有hash的只不过被隐藏了我看不到…………

再确认了一下jenkins的log,果然hash是更新了的,所以,是因为nginx没有配置好,每次没有加载最新的html,从而没有拿到新的hash来重新加载js,导致了这样谜一样的问题。

然后师兄这时候抛出了前两天随口说的截图来怼我,好气,怎么办

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180622G0L5VI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券