如何通过代码强制客户端刷新JavaScript文件?

如何通过代码强制客户端刷新JavaScript文件?,javascript,reactjs,Javascript,Reactjs,我们遇到的一个问题是,在使用新的JavaScript文件推出更新后,客户端浏览器仍然使用文件的缓存版本,并且看不到更新。显然,在支持电话中,我们可以简单地通知他们进行ctrlF5刷新,以确保他们从服务器获得最新的文件,但最好在此之前处理 我在用 <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate, max-age=0"/> <meta http-equiv="Pragma"

我们遇到的一个问题是,在使用新的JavaScript文件推出更新后,客户端浏览器仍然使用文件的缓存版本,并且看不到更新。显然,在支持电话中,我们可以简单地通知他们进行ctrlF5刷新,以确保他们从服务器获得最新的文件,但最好在此之前处理

我在用

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate, 
max-age=0"/>
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

我认为最好的方法是在生成的资产(甚至是版本号)中添加一个salt,这在每个构建中都是不同的

这样,每次文件名都会不同,并且不会使用旧的缓存文件引用


参考

您正在使用的??这对您来说可能是个糟糕的主意,但您可以在每个javascript文件中存储一个“版本号”,并有一个发送当前版本号的api,如果javascript文件版本号小于当前版本号,则在屏幕上显示一个通知,如“按ctrl+f5更新此应用程序”
myfile.1.0.1.js
>
myfile.1.0.2.js
最好的方法是给bundle.js文件提供版本号。