当React App中有可用的新包时,如何自动重新加载JS包?

时间:2019-05-13 21:05:53

标签: javascript reactjs webpack .net-core service-worker

当我新建一个react应用程序时,将创建一个具有序列号的捆绑软件,并将其包含在index.html中(例如:main.350fc2cb.chunk.js),然后浏览器将其缓存并从缓存中获取根据要求。

当我进行任何更改并创建新的包时,index.html将具有新版本,因此浏览器将可以正常工作,因为index.html现在正在请求其他文件名。

问题在于,当用户已经打开站点的选项卡时,当我进行新的更改并替换服务器上的index.html时,没有什么要告诉浏览器加载新的包的,除非刷新-无缓存-完成。

是否可以做些什么,以便应用程序知道是否有新内容并自动请求,或者至少告诉用户这样做?

我在后端使用.Net Core,因此后端提供的任何解决方案也都可以。

我尝试使用create-react-app应用程序中包含的serviceWorker来确定是否有新内容可用,但是除非我打开新标签页或刷新页面,否则它似乎不起作用,即使如此仍然需要刷新而无需缓存(CTRL + SHIFT + F5)来加载新捆绑包。

0 个答案:

没有答案