私はいつもnginxの構成に問題があるようです。私のSPAは/ mnt/q/app(pushstateが有効)にあり、フロントエンドのルートはclient/publicにあります。すべてをindex.htmlにマッピングする必要があります。アプリはルートを取得して、何をするかを決定します。
インデックスへのフルパスは/mnt/q/app/client/public/index.html
。
私は今までに選択肢を使い果たしたと思います。私が何をしても、nginxから404が返されるだけです。構成は十分に単純で、何が問題なのかわかりません。
server {
listen 80;
server_name app.dev;
root /mnt/q/app;
location / {
root /client/public;
try_files $uri @rewrites =404;
}
location @rewrites {
rewrite ^(.+)$ /index.html last;
}
}
どんな助けでもありがたいです。
nginx
がルートからファイルシステムを表示する場合、root
は/mnt/q/app/client/public
に設定する必要があり、使用している2つの値のいずれかではありません。
try_files
ディレクティブの最後の要素は、デフォルトのアクション(/index.html
など)、名前付きの場所、または応答コードにすることができます。最後から2番目の要素に名前付きの場所があります-これは無視されます。
名前付きの場所は機能するはずですが、try_files
はより簡単に実装できるため、不要です。詳細は このドキュメント を参照してください。
例えば:
root /mnt/q/app;
location / {
root /mnt/q/app/client/public;
try_files $uri $uri/ /index.html;
}
location /api {
}
location /auth {
}
$uri/
要素は、末尾に/
をディレクトリに追加するため、index
ディレクティブは機能します-不要な場合は追加する必要はありません。