という問題が起きました。
バージョン情報
Angular: 5.2.3
angular-cli-ghpages: 0.5.2
angular/cli: 1.6.5
Node: 8.1.4
発生した問題について
angular-cli-ghpages
を使ってGitHub Pagesにデプロイした際に、CSSからの画像ファイル参照はうまくいくが、HTMLからの画像ファイル参照は失敗するという事象が発生した。
なお、ローカルで実行したときにはHTML、CSS、ともに画像ファイルへのアクセスはできていた。
src/app/app.component.html
:
<img #bird [ngStyle]="birdPosition$ | async" class="bird" src="/assets/images/bird.jpg">
src/app/app.component.scss
:
.wall { background-image: url(/assets/images/white-wood.jpg); width: 10%; height: 100%; position: absolute; user-select: none; }
angular-cli.json
:
{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "project": { "name": "angular-redux-flappy-bird" }, "apps": [ { "root": "src", "outDir": "dist", "assets": [ "assets", "favicon.ico", "bird.jpg" ], "index": "index.html", "main": "main.ts", "polyfills": "polyfills.ts", "test": "test.ts", "tsconfig": "tsconfig.app.json", "testTsconfig": "tsconfig.spec.json", "prefix": "app", "styles": [ "styles.scss" ], "scripts": [], "environmentSource": "environments/environment.ts", "environments": { "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts" } } ], "e2e": { "protractor": { "config": "./protractor.conf.js" } }, "lint": [ { "project": "src/tsconfig.app.json", "exclude": "**/node_modules/**" }, { "project": "src/tsconfig.spec.json", "exclude": "**/node_modules/**" }, { "project": "e2e/tsconfig.e2e.json", "exclude": "**/node_modules/**" } ], "test": { "karma": { "config": "./karma.conf.js" } }, "defaults": { "styleExt": "scss", "component": {} } }
デプロイ手順
GitHub Pagesにデプロイしたときの手順
# インストールしていなければ $ npm i -g angular-cli-ghpages $ ng build --prod --base-href "https://[GitHubユーザー名].github.io/[リポジトリ名]/" $ angular-cli-ghpages
解決方法
HTMLの画像ファイルのパスを変更したところ、画像へのアクセスが成功するようになった。
<img #bird [ngStyle]="birdPosition$ | async" class="bird" src="assets/images/bird.jpg">
src="/assets/images/bird.jpg"
からsrc="assets/images/bird.jpg"
に変更している。
参考サイト
angularjs - github pages images not showing - Stack Overflow