HTML5 App Cacheを使用する単一のページアプリケーションを構築しようとしています。これは、異なるURLごとに新しいバージョンのアプリケーションをキャッシュするため、 /
と私のアプリを後でルーティングしてください(これはdevdocs.ioで使用された解決策です)。HTML5 App Cacheを使用した単一ページアプリケーションのNginx設定
ここに私のnginx設定です。私はすべてのリクエストが存在する場合にはファイルを送信し、/auth
と/api
に私のAPIにリダイレクトし、他のすべてのリクエストをindex.htmlにリダイレクトします。なぜ次の設定がブラウザにリダイレクトループがあると言ってしまうのですか?ユーザーがロケーションブロック#2に当たってルートが静的ファイルと一致しない場合、彼はロケーションブロック#3に送信され、ロケーションブロック#1をヒットしてindex.htmlに配信する必要がある「/」にリダイレクトされます。ここではリダイレクトループの原因は何ですか?これを達成するより良い方法はありますか?
root /files/whatever/public;
index index.html;
# If the location is exactly "/", send index.html.
location =/{
try_files $uri /index.html;
}
location/{
try_files $uri @redirectToIndex;
}
# Set the cookie of the initialPath and redirect to "/".
location @redirectToIndex {
add_header Set-Cookie "initialPath=$request_uri; path=/";
return 302 $scheme://$host/;
}
# Proxy requests to "/auth" and "/api" to the server.
location ~* (^\/auth)|(^\/api) {
proxy_pass http://application_upstream;
proxy_redirect off;
}
'root'ディレクティブと' index.html'ファイルはありますか? error.logを確認してください –
はい。それを含む質問が更新されました。 –
エラーログには何もありません。 –