我对脱机使用相当复杂的PWA并没有考虑太多。但是现在我想尝试一下。但是我使用这样的链接(可以说在PWA内部):
https://example.com/page.html?param=val
[当在PWA中单击类似脱机的链接时,出现“无法访问此站点”。但是此链接可以正常工作:
https://example.com/page.html
这些参数全部在Web浏览器中用JavaScript处理。我必须处理哪些选项?最好将它重写为#个链接吗?还是让我陷入其他麻烦?
https://example.com/page.html#param=val
问题来自缓存。在sw.js中,提供要缓存的文件列表,但提供不带参数的文件名。在许多情况下,您不知道参数的完整值是合乎逻辑的。
因此,在您的情况下,您缓存了“ https://example.com/page.html”,但是当您调用“ https://example.com/page.html?param=val”时,比较失败并收到错误消息。
解决方法是告诉sw.js文件中的retreivng函数,忽略参数。而不是
caches.match(event.request)
仅使用
caches.match(event.request, {ignoreSearch: true})