让 Angular Service Worker 只为 Angular 个文件工作
Let the Angular Service Worker work only for Angular files
我有一个 Angular 8 应用程序与另一个应用程序一起工作(旧版本的应用程序。我一直在开发新版本,他们应该继续一起工作)。我知道 Angular 有路径前缀 ['/path1', '/path2', '/path3']
。 api 或旧版本应用程序的所有其他使用路径(例如,['/api/*', '/*']
)。
我想使用 Service Worker,Service Worker 只缓存 Angular 个文件。
Angular 路径示例:
申请途径:
/path1/*
/path2/*
/path3/*
以及所有Angular源文件:
/index.html
/main.(_hash_).js
/common.(_hash_).js
/polyfills.(_hash_).js
... *(all prod compiled angular files)*
/assets/*
其他路径示例:
/oldApp
=>(return index.html 旧版本)
/*
=>(使用旧版本应用程序的所有文件和 apis)
/api/*
=> (对于 Angular apis)
我知道,它很复杂,但我只能更改 Angular 应用程序。
我最后用了这个 ngsw.config.json 但它也不起作用。
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js",
]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
}
],
"dataGroups": [
{
"name": "oldApp",
"urls": [
"/oldApp/**",
"/**"
],
"cacheConfig": {
"max-size": 0,
"maxAge": "0u",
"strategy": "freshness"
}
},
{
"name": "api",
"urls": [
"/api/**"
],
"cacheConfig": {
"max-size": 0,
"maxAge": "0u",
"strategy": "freshness"
}
}
]
}
抱歉我的英语不好。
我编写了自己的服务工作者脚本。首先,我在编译后写了脚本运行。该脚本读取所有已编译的文件名并创建新的 service worker js 文件。其次,我在Angular里面写了RegisterSWService
。 RegisterSWService
编译后创建的注册文件
我有一个 Angular 8 应用程序与另一个应用程序一起工作(旧版本的应用程序。我一直在开发新版本,他们应该继续一起工作)。我知道 Angular 有路径前缀 ['/path1', '/path2', '/path3']
。 api 或旧版本应用程序的所有其他使用路径(例如,['/api/*', '/*']
)。
我想使用 Service Worker,Service Worker 只缓存 Angular 个文件。
Angular 路径示例:
申请途径:
/path1/*
/path2/*
/path3/*
以及所有Angular源文件:
/index.html
/main.(_hash_).js
/common.(_hash_).js
/polyfills.(_hash_).js
... *(all prod compiled angular files)*
/assets/*
其他路径示例:
/oldApp
=>(return index.html 旧版本)/*
=>(使用旧版本应用程序的所有文件和 apis)/api/*
=> (对于 Angular apis)
我知道,它很复杂,但我只能更改 Angular 应用程序。
我最后用了这个 ngsw.config.json 但它也不起作用。
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js",
]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
}
],
"dataGroups": [
{
"name": "oldApp",
"urls": [
"/oldApp/**",
"/**"
],
"cacheConfig": {
"max-size": 0,
"maxAge": "0u",
"strategy": "freshness"
}
},
{
"name": "api",
"urls": [
"/api/**"
],
"cacheConfig": {
"max-size": 0,
"maxAge": "0u",
"strategy": "freshness"
}
}
]
}
抱歉我的英语不好。
我编写了自己的服务工作者脚本。首先,我在编译后写了脚本运行。该脚本读取所有已编译的文件名并创建新的 service worker js 文件。其次,我在Angular里面写了RegisterSWService
。 RegisterSWService
编译后创建的注册文件