javascript - ServiceWorker 离线 - HTML 中没有类名

标签 javascript reactjs caching service-worker workbox

我一直在尝试使用 Workbox 在我的 React 16 项目中实现缓存。 它似乎正在缓存某些内容,因为页面仍在 offline 中呈现。模式。但我似乎无法弄清楚为什么我的缓存版本在元素上不包含任何类名。

普通版: example with internet connection

缓存版本 Cached version of website

此外,预取似乎也可以正常工作: prefetching tab

我使用以下代码块通过 Webpack 实现了 Workbox:

new workboxPlugin({
  globDirectory: 'build/client',
  globPatterns: ['**/*.{html,js,css,png,jpeg}'],
  swDest: './build/client/sw.js',
}),

这可能是什么原因造成的?图像也没有被加载,即使它们也应该被缓存。

编辑:

看起来像.js文件没有被加载。 main & vendor .js文件包含分配类名所需的内容。

.js files can't be found

如您所见,.js找不到文件。这是在 preload 中,但删除它们只会将错误转移到 <script />包括文件。此外,Service Worker 注册的位置似乎并不重要。

旁注:我的类名是使用 import styles from './index.scss' 生成的=> <div className={styles.container} />

最佳答案

我的 SSR (server.webpack.config) 似乎在 CSS 加载时失败。我必须修改我的服务器配置以匹配有关 css 加载器的客户端配置。

因为我一开始没有这个,所以它会把scss文件当作普通的txt文件来读取,他无法识别,因此无法' t 使用 styles.container 方法。

scss 文件添加正确的加载器解决了问题。

关于javascript - ServiceWorker 离线 - HTML 中没有类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46502948/

相关文章:

javascript - 如何基于angularjs从网站上的url中删除index.html

javascript - Web Audio API Panner 节点 - 如何在 100% pan 上剪切声音?

javascript - 如何通过 react 拖放内容?

caching - 使用 Cloudfront 时,如何设置相对于当前日期的过期 header ?

.htaccess - 将 ExpiresByType 添加到 .htaccess 但 PageSpeed Insights 仍然声明我应该 "Leverage Browser Caching"

javascript - 如何通过引用传递或模拟它

javascript - 将 props 传递给不同组件的映射数组

javascript - React Developer Tools 如何判断网页使用的是 React?

reactjs - 表单字段失去输入焦点

vb.net - 怎么说 GeckoFX 使用旧的缓存文件而不是重新加载它们?