我们有一个使用从 Create React App 创建的 React 的 Web 应用程序(前端)。该应用在 Google Cloud Platform App Engine Standard 上运行。我们的 Web 应用程序是代码拆分的。然后在用户导航中加载每个页面。
它工作得非常好。我们遇到的问题是,例如用户 A 在应用主页上。我们部署了一个更改块文件名的修复程序。用户 A 然后尝试访问另一个页面,然后得到错误Loading chunk * failed
。获取文件的 url 现在返回 404,因为该文件已被一些新的块文件替换。
这是我在研究过程中看到的一个常见问题,但我没有找到适用于 Google App Engine 的解决方案。
这是一篇解释问题/解决方案的文章:https ://mitchgavan.com/code-splitting-react-safely/
我想使用解决方案“解决方案 1:部署后将旧文件保留在您的服务器上”,但我看不到如何使用 GCP 执行此操作......
这是 app.yaml 文件
service: frontend
runtime: nodejs14
env: standard
instance_class: F1
handlers:
- url: /(.*\..+)$
static_files: build/\1
upload: build/(.*\..+)$
- url: /.*
static_files: build/index.html
upload: build/index.html
我们有以下调度文件(* 表示屏蔽 url)
dispatch:
- url: "*"
service: frontend
- url: "www.*"
service: frontend