问题标签 [sw-toolbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
caching - PWA [sw-toolbox]:如何缓存所有资源的离线页面?
我有一个页面,我想将其用作离线后备。
问题是,在这个页面中我有大约 10 个 js/css 资源和大约 20 个图像。手动指向precache
数组中的每一个是愚蠢的。此外,很难维护 - html 模板中的所有资源更改都会受到影响sw.js
。
.html
是否可以使用所有资源(js/css/png)预缓存页面?
asp.net - ASP.Net /IIS CORS Access-Control-Allow-Origin:* 不适用于所有请求
我已通过将以下内容添加到 webconfig 来启用 CORS,但它似乎无法始终如一地工作:
如果我们在请求中添加“Origin”标头,它会在响应中显示 Access-Control-Allow-Origin:* 标头。但是,如果我们不在请求中添加“Origin”标头,则服务器不会返回 Access-Control-Allow-Origin:* 标头。
问题是,我正在使用 sw-toolbox 预缓存静态资源。但是如果一个资源比如javascript文件在Service Worker激活之前已经在浏览器缓存中,例如在html页面中直接引用该文件并且浏览器已经下载并缓存了该文件,那么Service Worker尝试预缓存时会显示CORS错误那个文件。
javascript - sw-toolbox 脚本评估失败
我在摆弄服务人员,并想使用 sw-toolbox,它有一种支持快速样式路由的方法。但是,当我使用这些行的任何版本导入它时:
我收到以下错误:
到目前为止,这是我的服务人员代码:
我究竟做错了什么?
progressive-web-apps - WorkboxSW 构造函数抛出错误未定义
在我的服务工作者文件中,我正在使用以下代码:
但我收到错误,Uncaught ReferenceError: WorkboxSW is not defined
因此我的服务人员没有注册。
router - sw-toolbox 路由器规则顺序/优先级如何工作?
在我的服务人员(使用 sw-toolbox 库)中,我设置了两条路线,如下所示:
我假设特定于“/user/logout”路径的第二个规则将作为第一个规则的例外(这是路径“/user/*”的一揽子规则)但是,我可以确认它不是。
我是否正确使用了这个 sw-toolbox 路由配置?
service-worker - 绕过 Service-Worker 缓存
我有一个渐进式网络应用程序,它与 API 对话。对此 api 的调用由 service worker 缓存,效果很好。
但是现在,我想添加一个重新加载按钮,理想情况下,它会强制服务人员尝试绕过缓存并在成功时更新它,如果无法建立连接,它也不应该返回缓存的结果。
我有点不确定如何解决这个问题。我正在使用sw-toolbox。
asp.net-mvc - 如何防止缓存 Asp.NET PWA 防伪令牌?
我有一个渐进式 Web 应用程序,它使用sw-toolbox来管理资源缓存。
登录页面 (/user/login?returnurl=xxxx) 需要防伪令牌,因此我像这样配置了 sw-toolbox 路由器以确保不返回页面内容的缓存版本:
toolbox.router.any("/user/*", toolbox.networkOnlyCustom);
如果用户离线,该networkOnlyCustom
方法使用networkOnly
带有警告的内置方法返回缓存的“抱歉,您离线”页面(见下文):
但是,我看到的是“防伪 cookie 令牌和表单字段令牌不匹配”错误出现了很多。虽然不是所有的时间!事实上,如果用户看到该错误,然后在浏览器上单击“返回”并再次提交表单,他们就可以正常登录。
我认为这是因为浏览器(在我的例子中是 Chrome 71)正在缓存登录页面。因此,我添加了以下 HTTP 响应标头,希望浏览器能够遵守:
但是,这并没有解决我的问题。任何想法将不胜感激!