Failed to register a ServiceWorker (Flutter)

Viewed 6378

I'm working on a Flutter Web App and today I got these errors:

A bad HTTP response code (404) was received when fetching the script.

Uncaught (in promise) TypeError: Failed to register a ServiceWorker for scope ('https://adrieldf.github.io/') with script ('https://adrieldf.github.io/flutter_service_worker.js'): A bad HTTP response code (404) was received when fetching the script.

The only thing "different" that I added to the code was a dependency for the Share library, but I don't think that that is the problem.

Here is the interesting thing, I've got the app hosted on Github Pages and after every commit I have a action that builds the web app. After the build, when I try to access it doesn't load and the errors appears. But building it and running it locally works normally.

Here is the source code if you want to check: https://github.com/Adrieldf/allthewidgets The website link is in the repo description.

8 Answers

I solved my problem by changing the index.html file

from <base href="/">

to <base href="/directory_name/">

Looks, like you are trying to run the project from the project_root/web folder.

If you just start a webserver here (for example, by using python -m http.server 8088), the application will start and even will be working partially.

But compiled web app located in project_root/build/web. Try to run your webserver in that folder.

Solved by changing base tag inside build/web/index.html

<base href="/">

to

<base href="./">

added . (dot)

For me got resolved simply after upgrading flutter packages:

flutter packages upgrade
flutter create .

flutter build web

and use the project/build/web as server's location

you can use peanut to build your flutter app and copy it to gh-pages project using something like:

peanut --extra-args "--base-href=/directory-name/"

Solved by changing base tag inside build/web/index.html

<base href="/">

to added . (dot) with the folder name inside which i added my flutter build

<base href="./flutter/portfolio">
Related