不缓存angularJs应用程序的sw预缓存
我是服务人员概念的新手,所以如果我忽略了文档中的某些内容,请原谅。我有一个angular应用程序已经在生产中运行,我正在尝试介绍使用sw precache的服务人员。 首先,我尝试预先设置所有图像/字体和两个js文件,看看它是否有效,所以我的预先设置配置如下-不缓存angularJs应用程序的sw预缓存,angularjs,service-worker,Angularjs,Service Worker,我是服务人员概念的新手,所以如果我忽略了文档中的某些内容,请原谅。我有一个angular应用程序已经在生产中运行,我正在尝试介绍使用sw precache的服务人员。 首先,我尝试预先设置所有图像/字体和两个js文件,看看它是否有效,所以我的预先设置配置如下- { "cacheId": "static-cache", "importScripts": [ "sw-toolbox.js" ], "stripPrefix": "dist/", "verbose": tru
{
"cacheId": "static-cache",
"importScripts": [
"sw-toolbox.js"
],
"stripPrefix": "dist/",
"verbose": true,
"staticFileGlobs": [
"dist/img/**.*",
"dist/javascripts/require.js",
"dist/stylesheets/**.*",
"dist/webfonts/**.{ttf, eot, woff}",
"sw-toolbox.js",
"service-worker.js"
]
}
现在,我可以看到服务人员已正确注册和安装,缓存存储显示了所有带有_sw-precache散列的URL。
但是,当我加载应用程序并在“网络”选项卡中查看时,所有静态内容仍然是从内存/磁盘提供的,而不是从服务工作者提供的,我无法调试为什么会这样。我是不是遗漏了什么-
更新:
更多信息:我有错误的配置,因为我有动态url和服务器端呈现的html。服务器端的test.jsp为我提供了初始shell。
现在我已经从缓存中删除了所有其他静态文件,只保留了show.css
所以现在更新配置是必要的-
{
"importScripts": [
"sw-toolbox.js"
],
"stripPrefix": "dist/",
"verbose": true,
"staticFileGlobs": [
"dist/stylesheets/show.css"
],
"dynamicUrlToDependencies": {
"/developers": ["dist/stylesheets/show.css"]
},
"navigateFallback": "/developers"
}
Web根文件夹的名称不同,它是-
-仪表板
--img
--Java脚本
--service-worker.js
--sw-toolbox.js
-test.jsp
我将/developers-url视为存储缓存中的一个条目,但它仍然不能从服务工作者处获得,以供下次刷新。我已经尽了全力来解决这个问题,但我迫切需要一些线索,这里缺少什么。蒂亚。
如果需要更多信息,请告诉我 您的文件扩展名列表中似乎不允许有空格。您对webfonts的定义应为:
"dist/webfonts/**.{ttf,eot,woff}",
我克隆了sw precache repo并添加了一个单元测试,在该测试中,我比较了两个生成的文件,其中有两个不同的staticFileGlob,一个有空格,另一个没有空格
it('should handle multiple file extensions', function(done) {
var config = {
logger: NOOP,
staticFileGlobs: [
'test/data/one/*.{txt,rmd}'
],
stripPrefix: 'test'
};
var configPrime = {
logger: NOOP,
staticFileGlobs: [
'test/data/one/*.{txt, rmd}'
],
};
generate(config, function(error, responseString) {
assert.ifError(error);
generate(configPrime, function(error, responseStringPrime) {
assert.ifError(error);
console.log('responseStringPrime',responseString);
assert.strictEqual(responseString, responseStringPrime);
done();
});
});
}))
结果失败了。第二个配置不包括.rmd文件:
-var precacheConfig = [["/data/one/a.rmd","0cc175b9c0f1b6a831c399e269772661"],["/data/one/a.txt","933222b19ff3e7ea5f65517ea1f7d57e"],["/data/one/c.txt","fa1f726044eed39debea9998ab700388"]];
对
+var precacheConfig = [["test/data/one/a.txt","933222b19ff3e7ea5f65517ea1f7d57e"],["test/data/one/c.txt","fa1f726044eed39debea9998ab700388"]];
谢谢@stef chäser,这是一个错误。我已经更新了我的问题,删除了所有静态内容,但现在只保留show.css,我只想让我的应用程序外壳缓存首先工作,并进一步改进应用程序。虽然在存储缓存中看到url条目,但我无法缓存appshell。