Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ReactJS单页应用程序。无法在Chrome上获取更新版本_Reactjs_Google Chrome_Single Page Application_Service Worker_Page Refresh - Fatal编程技术网

ReactJS单页应用程序。无法在Chrome上获取更新版本

ReactJS单页应用程序。无法在Chrome上获取更新版本,reactjs,google-chrome,single-page-application,service-worker,page-refresh,Reactjs,Google Chrome,Single Page Application,Service Worker,Page Refresh,我们有一个基于ReactJS构建的应用程序,并使用S3和CloudFront部署。我们经常与客户讨论这个问题,客户需要对web应用程序进行硬刷新,以获得最新的SPA应用程序 为了解决这个问题,我遇到了以下文章 本文中的方法成功地在所有三种浏览器(即FF、Chrome和Safari)上引发了一个名为“newContentAvailable”的事件。引发此事件时,逻辑将尝试使用window.location.reload(true)重新加载更新版本。这成功地更新了FF和Safari,但Chrome

我们有一个基于ReactJS构建的应用程序,并使用S3和CloudFront部署。我们经常与客户讨论这个问题,客户需要对web应用程序进行硬刷新,以获得最新的SPA应用程序

为了解决这个问题,我遇到了以下文章

本文中的方法成功地在所有三种浏览器(即FF、Chrome和Safari)上引发了一个名为“newContentAvailable”的事件。引发此事件时,逻辑将尝试使用
window.location.reload(true)
重新加载更新版本。这成功地更新了FF和Safari,但Chromes仍然使用较旧的版本

我曾尝试使用不同的方法在Chrome中重新加载,但没有成功。我在搜索此问题时遇到以下代码

$.ajax({
    url: window.location.href,
    headers: {
        "Pragma": "no-cache",
        "Expires": -1,
        "Cache-Control": "no-cache"
    }
}).done(function () {
    window.location.reload(true);
});

我不确定我在这里做错了什么。请提供帮助。

需要部署两种不同类型的文件:

  • 浏览器不应缓存的常见文件,如
    index.html
  • 使用哈希键生成文件,例如
    18.a7e57db0.chunk.js
    ,可以安全地缓存这些文件,因为对源代码的更改将生成新的生成文件
要设置缓存HTTP头,可以使用AWS S3 CLI工具或其他API工具,如。通常,您希望浏览器在每次重新加载调用时重新加载公共文件,但避免对不会更改的文件(即具有哈希键的文件)进行任何不必要的通信

我构建了一个将自动处理这一问题的系统,并将其上传到S3。它根据文件类型设置HTTP缓存头参数,删除旧文件,并可以选择维护旧版本


另请参见:

要部署两种不同类型的文件:

  • 浏览器不应缓存的常见文件,如
    index.html
  • 使用哈希键生成文件,例如
    18.a7e57db0.chunk.js
    ,可以安全地缓存这些文件,因为对源代码的更改将生成新的生成文件
要设置缓存HTTP头,可以使用AWS S3 CLI工具或其他API工具,如。通常,您希望浏览器在每次重新加载调用时重新加载公共文件,但避免对不会更改的文件(即具有哈希键的文件)进行任何不必要的通信

我构建了一个将自动处理这一问题的系统,并将其上传到S3。它根据文件类型设置HTTP缓存头参数,删除旧文件,并可以选择维护旧版本

另见: