NGINXは、コンテナとして動作しているドッカーコンテナの仮想ネットワークのリバースプロキシとして設定されています。これらのコンテナの1つは、クライアント側ルーティングがHTML5モードであるAngular 4ベースのSPAです。HTML5モードでのNGINX、proxy_pass、SPAルーティング
アプリケーションはNGINXの/にマップされているので、http://server/はSPAのホーム画面に移動します。 SPA内をナビゲートするとき
server {
listen 80;
...
location/{
proxy_pass http://spa-server/;
}
location /other/ {
proxy_pass http://other/;
}
...
}
角度ルータがhttp://server/homeまたは他のルートへのURLを変更します。
ただし、これらのURLに直接アクセスしようとすると、404が返されます。このエラーは、spa-server
に由来します。なぜなら、明らかにこれらのルートの内容を持っていないからです。
このシナリオをサポートするためにNGINXを設定する例では、常にSPAの静的コンテンツがNGINXから直接配信されると仮定しているため、try_files
は実行可能なオプションです。
未知のURLをSPAに転送して、それ自体を処理できるようにするにはどうすればよいですか?私の作品