3

Create React App Service Worker 中默认忽略的 url 对于 firebase auth "__"url 如下,它是这样完成的:

navigateFallbackWhitelist: [/^(?!\/__).*/]

**使用相同的负正则表达式方法,我尝试将以下内容添加到数组中"/dynamicHosting":**

像这样:

navigateFallbackWhitelist: [/^(?!\/__).*/, /^(?!\/dynamicHosting).*/]**

问题是Service Worker仍然不断拦截路径 "/dynamicHosting"

因此,200.html我的默认 navigateFallback 文件呈现。而不是来自我的服务器的动态 html 文件。

为什么 ServiceWorker 不忽略路径"/dynamicHosting"

我正在使用 SW-Precache CLI,但没有从 Create React App 中弹出:

"build": "react-scripts build && sw-precache --config=sw-precache-config.js

sw-precache-config.js 看起来像这样:

module.exports = {
  staticFileGlobs: [
    './build/**/**.html',
    './build/images/**',
    './build/static/**',
    './build/manifest.json',
  ],
  dontCacheBustUrlsMatching: /\.\w{8}\./,
  swFilePath: './build/service-worker.js',
      // For unknown URLs, fallback to the index page
  navigateFallback: './200.html',
      // Ignores URLs starting from /__ (useful for Firebase):
  navigateFallbackWhitelist: [/^(?!\/__).*/, /^(?!\/dynamicHosting).*/],
  staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/, /404\.html$/],
  stripPrefix: './build'
}

更新:

而不是逗号,我不得不像这样写出 navigateFallbackWhitelist 来组合正则表达式:

进行以下更改后,它可以工作:

navigateFallbackWhitelist: [/^(?!\/__).*/+ "|" +/^(?!\/dynamicHosting).*/],

4

0 回答 0