10.6 シングルページアプリケーションの静的ファイルを配信する

最初に、HTMLやJavaScriptのファイルの配信はもうウェブアプリケーションの仕事ではなくなってきているということを紹介しました。一方で、小さなサーバーレスアプリケーションなど、コンテナひとつで気軽にデプロイするような仕組みも整備されているため、JavaScriptで作ったフロントエンドとセットでデプロイできると便利なこともあります。

Goでは、特定のフォルダ以下の内容をそのままウェブとして配信できますし、実行ファイルにフォルダのコンテンツをバンドルして、その内容を配信することも可能です。本節ではその方法を紹介します。

シングルページアプリケーションという言葉を聞いたことがあるでしょうか?一見、ブラウザではページ遷移をしているように見えて、URLに合わせた内容の書き換えをJavaScriptだけで行い、1つのHTMLと、1つ(ないしは分割されたいくつかの)のJavaScriptファイルで、ページがたくさんあるかのように見えるウェブのフロントエンドのことです。ページ遷移時に次のHTMLや画像などを一斉に読み込んで表示すると一瞬画面が白くなったり、書き換えの様子が見えますが、次のページに必要なコンテンツだけをサーバーから読み込み、その結果を受けてブラウザ上で次の画面をさっと組み替えて表示するため、ページ切り替えの応答がすばやく見える点が特徴です。

シングルページアプリケーションはURLを書き換えて、存在しないパスにページがあるように見せかけますが、仮にそのURLでリロードされたり、URLをSNSでシェアした場合にはその存在しないページがリクエストされて404エラーになってしまいます。そのため、サーバー側では存在しないパスの場合にもindex.htmlを返し、そのページが存在しているかのように見せる必要があります。これの実現には標準の ...