Tengo un proyecto básico de inicio de paquete web con solo html, css y javascript. Estoy tratando de registrar un trabajador de servicio con la aplicación, pero constantemente aparece el error 404 en la consola que dice que no se encontró el trabajador de servicio.
A bad HTTP response code (404) was received when fetching the script. index.js?15bb:21 Service Worker failed to install TypeError: Failed to register a ServiceWorker for scope ('http://localhost:8080/') with script ('http://localhost:8080/sw.js'): A bad HTTP response code (404) was received when fetching the script.¿Alguien puede ayudarme con el problema?
He actualizado mi repositorio git que es público. https://github.com/ankitbtanna/servicio-trabajadores
Su src/sw.js webpack se ingiere en la canalización de activos del paquete web, por lo que el servidor de desarrollo del webpack web no sabe cómo responder a las solicitudes.
Si su src/sw.js es solo un archivo estático (como lo es ahora), debe colocarlo en el directorio public/ y la configuración de su webpack lo expondrá automáticamente al servidor de desarrollo.
El único problema aquí es que querrás asegurarte de que todo en public/ se sirva desde tu raíz web / , no desde /public/ , porque necesitas que la URL de tu service worker sea /sw.js , no /public/sw.js .
Puede cambiar su configuración de CopyWebpackPlugin para hacer esto:
new CopyWebpackPlugin({ patterns: [{ from: Path.resolve(__dirname, '../public'), to: '.', // changed from 'public' }], }),