1

シングルページアプリで作業しようとしています-すべてのURLをindex.htmlに書き直す必要がありますが、既存の静的ファイル(.cssと.js)を通常のブラウザーで提供できるようにします。

これは私が再書き込みに使用しようとしているコードですが、静的ファイルも再書き込みに使用できます

if (!-e $request_filename)
{
    rewrite ^/(.*)$ /?/$1 last;
    break;
}
4

2 に答える 2

2

これはうまくいくはずです:

server {
    listen          1.2.3.4:80;
    server_name     domain.eu;
    root            /usr/local/www/domain.eu/public;

    try_files       $uri @rewrites;

    location @rewrites {
        rewrite   ^/favicon.ico$   /pictures/favicon.ico   last;
        rewrite   ^                /index.html             last;
    }
}
于 2012-11-09T22:58:14.357 に答える
2

nginx で実際に書き直す必要はありません。次のように try_files を使用するだけです。

location / {
  try_files $uri /index.html;
}

これが行うことは、すべての URL に対してです。

  1. 正確な静的ファイル名の一致を試み、存在する場合はそれを提供します
  2. 1 が何も提供しなかった場合、代わりに server /index.html

http://nginx.org/en/docs/http/ngx_http_core_module.html#try_filesを参照してください

于 2012-11-10T00:45:35.477 に答える