home wiki.fukuchiharuki.me
Menu

キーワード

  • Angular2
  • routing
  • 404 not found

現象

Angular2でルーティングしたときにURLが切り替わる。このURLをリロードすると404エラーになる。ただし、開発時ng serverなどで動かしているときは問題がない。

原因

ないものはないから。なかったときにindex.htmlをレスポンスするようにサーバー設定する必要がある。ng serverなどで動くサーバーはそれをやってくれているのだと思う。

対策

<Directory "/Applications/XAMPP/xamppfiles/htdocs"> # ここはいろいろ
    # rewrite to index.html for Angular2
    Options Indexes FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.html [L]
</Directory>

備考

開発環境がいろいろやってくれている部分が見えないとハマったときに困る。。

参考