url - 离线 PWA 中的 https://example.com/page.html?param=val 等 URL
问题描述
我并没有过多考虑离线使用相当复杂的 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})
推荐阅读
- ios - 改变视图的约束
- laravel - Pikaday 在 laravel livewire 中没有定义
- node.js - 没有用户的图形 api 请求令牌
- xamarin.forms - XAMARIN 通过 PRISM 在 Tabpage 中选择选项卡
- ubuntu - Ubuntu 服务器安装在目标中的 curtin 命令处停止
- python - 使用产品和变体填充电子商务表
- javascript - 如何在mousemove上获取屏幕上像素的颜色?
- linux - 在 Linux Mint 20.1 / Ubuntu 20.04 上安装/卸载 Docker 后网络连接断开
- google-apps-script - 我拥有几个带有按钮激活脚本的 GS 电子表格。我可以授予用户使用它们的权限,而这些用户不会牺牲他们的安全性吗?
- flutter - NestedScrollView 的颤振问题