我有一个简单的 Angular 应用程序,我正在尝试在 Service Worker 的帮助下使其具有离线功能。我已按照本教程了解如何设置服务人员:
https://coryrylan.com/blog/fast-offline-angular-apps-with-service-workers
当我在自己的开发机器上运行 SW 和应用程序本身时,它运行良好,但我想将其部署在 Github 项目页面上:https ://zyxon.github.io/AngTodo/
上传dist
文件夹的内容后(与我在开发服务器上所做的一样),服务工作者由于在assets
文件夹的内容上获得 404 而无法注册。它在/assets/...
.
我最好的猜测是它可以在我的开发服务器上运行,因为该应用程序托管在 Web 服务器 ROOT 中,但对于 Github 页面,它托管在 .../AngTodo 目录中。
所以我的问题如下:如何指定 sw-precache 以输出带有附加前缀(/AngTodo/assets/...
在我的情况下)的这个 SW?
我sw-precache-config.js
的如下:
module.exports = {
navigateFallback: '/index.html',
stripPrefix: 'dist',
root: 'dist/',
staticFileGlobs: [
'dist/index.html',
'dist/**.js',
'dist/**.css',
'dist/assets/**.js',
'dist/assets/**.css',
'dist/assets/bootstrap/css/**.css',
'dist/assets/bootstrap/js/**.js',
'dist/assets/font-awesome/css/**.css',
'dist/assets/font-awesome/fonts/*.eot',
'dist/assets/font-awesome/fonts/*.svg',
'dist/assets/font-awesome/fonts/*.ttf*',
'dist/assets/font-awesome/fonts/*.woff*',
'dist/assets/font-awesome/fonts/*.woff2*',
'dist/assets/font-awesome/fonts/*.otf',
'dist/assets/font-awesome/fonts/*.*',
'dist/assets/font-awesome/fonts/*.eot',
'dist/assets/font-awesome/less/*.less',
'dist/assets/font-awesome/scss/*.scss',
'dist/assets/img/*.png',
'dist/assets/jquery/*.js',
'dist/assets/popper/*.js'
]
};