0

我的 Angular 6 应用程序使用 Uppy (XHRUpload) 进行文件上传。文件上传发生在不同的子域中。

上传在 localhost 上工作正常(禁用服务工作者),但是当我尝试在启用服务工作者的情况下上传文件时,它仅适用于小尺寸(几 mb)的文件,而对其他人则失败。

似乎服务工作者在等待 API 上传调用的响应,如果它在几秒钟内没有返回(对于大文件),它会失败,正如我在开发人员工具中看到的那样。

以下是我的 ngsw-config.json

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/*.css",
          "/*.js"
        ]
      }
    },
    {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**"
        ],
        "urls": [
          "https://fonts.googleapis.com/**",
          "https://fonts.gstatic.com/**"
        ]
      }
    }
  ]
}
4

1 回答 1

0

您可能希望排除服务工作者缓存/处理的路径。

要么ngsw-config.json把路线放到"navigationUrls"

或者,如果可以的话,将文件上传 API 端点放在路径中以(或具有)__(即双下划线)开头的路由。默认情况下,角度服务工作者应将其视为navigationUrl,这是生成的ngsw.json

  "navigationUrls": [
{
  "positive": true,
  "regex": "^\\/.*$"
},
{
  "positive": false,
  "regex": "^\\/(?:.+\\/)?[^/]*\\.[^/]*$"
},
{
  "positive": false,
  "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*$"
},
{
  "positive": false,
  "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"
}
]
于 2018-07-31T14:14:52.330 回答