Reputation: 951
I deployed a test project on github pages using these commands:
ng build --prod --base-href https://<profile_name>.github.io/<repo_name>/
ngh --dir=dist/scrabble
Everything works fine except images (on localhost every image is loading).
"outputPath": "dist/scrabble/",
assets in angular.json:
"assets": [
"src/favicon.ico",
"src/assets"
],
assets folder with images is located in <project_folder>/src/assets
one example of image tag which works perfectly on localhost but doesn't load on github pages:
<img src="../../../assets/scaledlogo.png" routerLink="/menu" />
Upvotes: 7
Views: 10976
Reputation: 429
If all your images are in your assets folder you can just remove the ../
s from the path.
<img src="assets/scaledlogo.png" routerLink="/menu" />
So the issue is everything gets transpiled and minified and the assets folder is no longer 3 directories back. Angular knows where your assets folder is if you are running it locally or its deployed and does not need the relative path.
Upvotes: 20
Reputation: 41
See this guide section: https://angular.io/guide/deployment#deploy-to-github-pages
You need to set the base ref property:
ng build --output-path docs --base-href /your_project_name/
Upvotes: 0
Reputation: 541
A list of things to check:
Upvotes: 0
Reputation: 3801
Remove the "../" in front and mention the path starting from the assets folder Below will solve your problem
<img src="assets/scaledlogo.png" routerLink="/menu" />
In case if you have additional folder inside the assets go on with that path. For Example:
<img src="assets/images/leave-procedure/admin1.png" width="400" height="150">
Hope this helped.
Upvotes: 0
Reputation: 893
You need to pass --deploy-url option. in your case it should be
ng build --prod --base-href https://<profile_name>.github.io/<repo_name>/ --deploy-url=https://<profile_name>.github.io/<repo_name>/
Upvotes: 3