首页 > 解决方案 > 反应排除文件被缓存

问题描述

我正在用 React 开发一个项目,我想排除一些特定的 pdf 文件保存在缓存中。我正在使用提供的服务工作者的典型代码create-react-app

export default function register() {
  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
    const publicUrl = new URL(process.env.PUBLIC_URL, window.location);
    if (publicUrl.origin !== window.location.origin) {

      return;
    }

    window.addEventListener('load', () => {
      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;

      if (isLocalhost) {
        checkValidServiceWorker(swUrl);

        navigator.serviceWorker.ready.then(() => {
          console.log(
            'This web app is being served cache-first by a service ' +
              'worker'
          );
        });

      } else {
        registerValidSW(swUrl);
      }
    });
  }

我不知道我应该在哪里以及如何做。

标签: javascriptreactjsservice-worker

解决方案


我想我找到了解决办法。不幸的是,它需要eject在项目中使用。之后,我们需要在文件夹中找到一个名为webpack.config.prod.jsconfig文件。然后搜索SWPrecacheWebpackPlugin。它有一个名为 的参数staticFileGlobsIgnorePatterns。在那里我们可以添加任何我们想要的东西。默认值为[/\.map$/, /asset-manifest\.json$/]


推荐阅读