Firebase Hosting にはリライトという機能があって、設定ファイル(firebase.json
)を書くことで例えば
- 全てのパスを
/index.html
へ向ける (SPA などで使う)
/items/1234
へのリクエストを /items/id.html
へ向ける
/api/get_item
へのリクエストを Cloud Functions の get_item
関数の HTTP トリガへ向ける
といったことが実現できます。
また cleanUrls 属性を使用することで URL から .html
拡張子を取り除くことができます。/page
へのアクセスは Hosting にアップロードされた /page.html
のファイルを取得するようになり、/page.html
へのアクセスは /page
へ 301 リダイレクトされるようになります。
これらの挙動はシュッとしたウェブアプリを作るためには大変便利でよく利用しますが、Firebase 本番環境へデプロイされたアプリケーションでしか効きません。本番環境では /items/1234
は /item/id.html
を返してくれるけど開発環境では /item/1234
は 404 になるといったつらみが生じます。
rewriteproxy
そこで開発環境でもリライトと cleanUrls の挙動を再現してくれるプロキシを作りました。お手元の firebase.json
を読み込んで動作します。
リポジトリはこちら。
github.com
続きを読む