Angular ZEIT现在有角度PWA手柄404

Angular ZEIT现在有角度PWA手柄404,angular,vercel,Angular,Vercel,我现在在ZEIT上有一个PWA IONIC/Angular主机。我注意到,有时部署后,应用程序启动时会有一个空白页面。经过研究,我发现在部署之后,浏览器想要获取一些缓存的.js文件 通常情况下,ZEIT现在只会显示404或其他内容,或引发http 404状态。但是我注意到响应是index.html(状态为202),浏览器无法处理,因为它需要的是javascript而不是text/html 我当前的now.json { "version": 2, "name": "my-app",

我现在在ZEIT上有一个PWA IONIC/Angular主机。我注意到,有时部署后,应用程序启动时会有一个空白页面。经过研究,我发现在部署之后,浏览器想要获取一些缓存的
.js
文件

通常情况下,ZEIT现在只会显示404或其他内容,或引发http 404状态。但是我注意到响应是
index.html
(状态为202),浏览器无法处理,因为它需要的是javascript而不是text/html

我当前的
now.json

{
    "version": 2,
    "name": "my-app",
    "routes": [
      {
        "src": "dist/main.*.js",
        "headers": { "Cache-Control": "s-maxage=0, max-age=0" }
      },
      {
        "src": "dist/ngsw.json",
        "headers": { "Cache-Control": "s-maxage=0, max-age=0" }
      }
    ] 
  }

我如何处理这个问题?

也许您可以尝试404个不存在的哈希
.js
文件?以下是几个步骤:

  • 用于删除
    dist
    前缀
  • 如果要使用
    路由
    (),在解决“dist”前缀问题后,请尝试:

  • 自动检测角度,并添加通配符路由,以便任何与静态资源不匹配的路由都将提供
    /index.html

    听起来最好的解决方案是禁用文件哈希,这样每次都不会重命名js/css资产

    ZEIT现在已经清除了CDN缓存,因此您不必担心过时的文件


    但这会破坏服务人员检测到我部署的应用程序的新版本吗?您没有共享服务人员的内容,因此我无法确定。但是,您使用的是服务工作者这一事实让我认为问题在于服务工作者的缓存,而不是CDN缓存。嗯,我从来没有想过这一点。我去看看
        "routes": [
          { "handle": "filesystem"},
          {
            "src": "/main.*", "status": "404", "dest": "/404"
          }
        ]