【发布时间】:2017-09-01 10:24:11
【问题描述】:
我有一个简单的 Angular 应用程序,我正在尝试在 Service Worker 的帮助下使其能够离线。我已按照本教程了解如何设置服务人员:
https://coryrylan.com/blog/fast-offline-angular-apps-with-service-workers
当我在自己的开发机器上运行时,软件和应用程序本身运行良好,但我想将其部署在 Github 项目页面上:https://zyxon.github.io/AngTodo/
上传 dist 文件夹的内容(与我在开发服务器上所做的一样)后,Service Worker 无法注册,因为 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'
]
};
【问题讨论】:
标签: angular github-pages service-worker sw-precache