我使用sw-precache为Firebase托管的Range2应用程序生成一个服务工作人员。
错误:
Service Worker registration failed: TypeError: Failed to register a ServiceWorker: A bad HTTP response code (404) was received when fetching the script.
结构
src-
app--
index.html
service-worker.js
sw-precache-config.js
sw-precache-config
在测试项目的服务人员并使用来自google的示例时:
/*
Copyright 2016 Google Inc. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICEN
我正在构建PWA,当我在:上运行它时,它按照预期工作。
但是当我在它预定的域上运行它时,我在Chrome中得到了这个错误。火狐很好用。
worker.js:74 Uncaught (in promise) TypeError: Failed to execute 'put' on 'Cache': Request method 'POST' is unsupported
在我的模板里
<script>
if ('serviceWorker' in navigator) {
window.addE
在教程的帮助下,我写了一个服务工作者:
var CACHE = 'cache-and-update';
self.addEventListener('install', function (evt) {
console.log('The service worker is being installed.');
evt.waitUntil(precache());
});
self.addEventListener('fetch', function (evt) {
evt.respondWith(
我正在尝试缓存wordpress站点的首页或所有页面,以遵守灯塔PWA失败审计:
如果您正在构建一个渐进Web应用程序,请考虑使用服务工作人员,以便您的应用程序可以脱机工作。了解更多信息。
我已经发挥了作用:
/**
* Callback that adds the service worker
*
*/
function brs_add_service_worker_callback() {
?>
<script>
// Check that service workers are registered
if (
当从Visual Studio运行本地服务器时,Firefox将会出错,并且不能正确加载页面。它显示以下错误:
Failed to load ‘https://localhost/js/mqtt.js’. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value ‘undefined’. serviceworker.js:19:10
它在Chrome上运行得很好。当服务器在基于云的Azure服务器上时,它也可以在Firefox上很好地工作。以下是服务工作者
我实现了来自pwabuilder.com的服务工作者,它工作得很好
问题是,即使浏览器在线,服务工作器也会运行,因此每个js函数都会运行两次,一次来自服务工作器,另一次来自我的其他js文件。
在运行js函数之前,我应该检查它是否是活动的服务工作者,或者当浏览器在线时,我应该以某种方式确保该服务工作者没有运行吗?
这是我在主索引文件中运行的代码
if (navigator.serviceWorker.controller) {
//console.log('[PWA Builder] active service worker found, no need to
我有一个缓存图像的服务工作者,这个服务工作者只注册在前端模板,但它仍然不断传播到我的管理模板。
这会导致我的表单在验证令牌受到影响时表现出不可预知的行为。
对于一些console.log,我认为install事件是在到达请求的页面之前触发的,但我无法确定那里的当前/下一个URL。
如何防止服务人员扩散到管理面板并干扰页面?我只希望只缓存资产。
这是我的服务工作者,只要是相关的:
const PRECACHE = 'precache-v1.0.0';
const RUNTIME = 'runtime';
// A list of local resources
我在偶然发现了这个片段
<script>
// Check that service workers are registered
if ('serviceWorker' in navigator) {
// Use the window load event to keep the page load performant
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js');
});
}
<