【问题标题】:Caching external downloads with Workbox使用 Workbox 缓存外部下载
【发布时间】:2020-04-30 21:57:29
【问题描述】:

我正在使用 gatsby-plugin-offline 开发 GatsbyJS 站点,该站点可在 example.com 上获得,并希望制作我在 example.com 上链接但位于 download.example.com/example 的 PDF 文件。 pdf离线可用。这可能吗?

【问题讨论】:

    标签: progressive-web-apps gatsby workbox


    【解决方案1】:

    是的,这是可能的。我不是 100% 熟悉 gatsby-plugin-offline 的配置,但看起来 https://www.gatsbyjs.org/packages/gatsby-plugin-offline/#available-options 描述了一个在其默认配置的末尾附加额外的服务工作者逻辑的过程:

    plugins: [{
      resolve: `gatsby-plugin-offline`,
      options: {
        appendScript: require.resolve(`src/custom-sw-code.js`),
      },
    }]
    

    然后在src/custom-sw-code.js:

    workbox.routing.registerRoute(
      ({url}) => url.pathname.endsWith('.pdf'),
      // Use StaleWhileRevalidate, CacheFirst, etc. as desired.
      new workbox.strategies.StaleWhileRevalidate({cacheName: 'pdfs'})
    );
    

    【讨论】:

    • 谢谢!它似乎仍然对我不起作用。您的方法和覆盖 Workbox config 并在那里为 PDF 添加 URL 模式都不会缓存它们。可能是因为我没有在我的网站上嵌入 PDF,而只是链接到它们?
    猜你喜欢
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 2021-09-28
    相关资源
    最近更新 更多