我想向我的 Angular 應用發送推送通知。我是用 vanilla js 做的,而不是用 Angular service worker 或 @angular/pwa。我在angular.json的腳本選項中添加了js文件的路徑。當要注冊 Service Worker 時,它會從根目錄 ( http://127.0.0.1:8887/sw.js )重定向路徑,而不是從我放置文件的文件夾中重定向。這是 angular.json 文件: "scripts": [ "./src/assets/js/main.js", "./src/assets/js/sw.js" ]main.js 文件:const applicationServerPublicKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';let isSubscribed = false;let swRegistration = null;if ('serviceWorker' in navigator && 'PushManager' in window) { console.log('Service Worker and Push is supported'); navigator.serviceWorker.register('/sw.js') // I tried ./sw.js and also /src/assets/js/sw.js and sw.js alone .then(function(swReg) { console.log('Service Worker is registered', swReg); swRegistration = swReg; }) .catch(function(error) { console.error('Service Worker Error', error); }); } else { console.warn('Push messaging is not supported'); pushButton.textContent = 'Push Not Supported'; }服務工作者文件僅用于測試該文件目前是否可訪問:console.log('sw');這是錯誤:Service Worker Error TypeError: Failed to register a ServiceWorker for scope ('http://127.0.0.1:8887/') with script ('http://127.0.0.1:8887/sw.js'): A bad HTTP response code (404) was received when fetching the script.
Service Worker 未在 Angular 中注冊
呼如林
2021-12-23 19:54:06