忽略Service Worker中的某些Url路径名以创建React应用

时间:2017-12-18 22:36:34

标签: reactjs service-worker create-react-app sw-precache

创建React App Service Worker中默认忽略的url是firebase auth "__" url的以下内容,它是这样完成的:

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

**使用相同的负面Regex方法我尝试将以下内容添加到数组"/dynamicHosting":**

像这样:

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

  

问题是服务工作者仍然一直在拦截路径   "/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).*/],

0 个答案:

没有答案