learyjk
learyjk

Reputation: 739

404 Failed to load resource Deploying Flutter Web App to GitHub Pages

I am trying to deploy my Flutter app to GitHub Pages. App runs fine with flutter run -d chrome and builds successfully using flutter build web --release

I push the code to my repository: https://github.com/learyjk/superpacecalcweb

Deployment Activity Log shows successful deployment. But when I click the "View Deployment" button I just get a blank page. Javascript console says:

Failed to load resource: server responded with status of 404 () https://learyjk.github.io/main.dart.js

I have tried to append /index.html to the end of the URL as well but no luck.

Any ideas? The error output is not very verbose, so I don't quite know where to start...

GitHub pages link: https://learyjk.github.io/superpacecalcweb/

Thank you!

enter image description here

Upvotes: 30

Views: 16821

Answers (3)

joshua
joshua

Reputation: 21

I tried the base file path and it failed, mine seems to have been a bug case by the .js file. Not sure how it happened but my index file had flutter.js instead of main.dart.js in the html file. When i changed this my sited.

Upvotes: 0

Cristian Davide Conte
Cristian Davide Conte

Reputation: 1381

How to automate the proposed solution

When building the project use:
flutter build web --release --base-href="/yourGithubRepoName/"
It will do all the required subsitutions for you.

In this case the command would be:
flutter build web --release --base-href="/superpacecalcweb/"

Upvotes: 19

Abhilash Chandran
Abhilash Chandran

Reputation: 7509

There is <base href=''/> tag in your index.html. Change it to the base path of your github repo. In this case this would be <base href="/superpacecalcweb/"/>. If you don't have it you can add it inside the <head> tag.

Basically the problem is flutter tries to locate main.dart.js file without considering the base path of your deployment as you haven't configured the base tag with correct path. This is common issue while deploying flutter web app or any web app for the sake if the hosting provider adds an additional path to main domain.

You can see that the main.dart.js is available through the following link. https://learyjk.github.io/superpacecalcweb/main.dart.js

Please do note that while testing locally you will still have to set it back to href="/". Otherwise the local deployment won't work. There is an open issue to make this configurable.

Upvotes: 52

Related Questions