この質問に関して質問を拡張したかったのです。Backbone アプリケーション内で pushstate を正しく動作させることができました。そのため、アプリケーションにアクセスしてリンクをナビゲートすると、localhost:8000/#page ではなく localhost:8000/page にリダイレクトされます。localhost:8000/page をリロードすると、私の問題が明らかになります。指定されたページが見つからないため、サーバーがエラーをスローすることは明らかです。正しいルートを呼び出す localhost:8000/#page とは対照的です。ここで、アプリケーションが次の localhost:8000/index.html にあるとします。次に、すべてのルートを localhost:8000/index.html にリダイレクトするように要求する必要がありますか。これを行う正しい方法と考えられるものは何ですか? 私はこの要点を見つけましたBackbone と pushstate の node.js サーバー構成に基づいています。簡単に見ると、すべてのリクエストがアプリケーション ファイル (index.html) にリダイレクトされているように見えます。これは正しいです?IIS でうまくいきましたか?
質問する
594 次
1 に答える
0
基本的に、Apache または Nginx でいくつかの書き換えルールが必要です。
Apache 仮想ホスト:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
ニンクス:
rewrite ^(.+)$ /index.html last;
実際の API 呼び出しについては、api.site.com などのサブドメインで提供しています。これを行うには、CORS を有効にする必要がある場合があります。
このブログ エントリで詳しく説明します: http://readystate4.com/2012/05/17/nginx-and-apache-rewrite-to-support-html5-pushstate/
于 2012-10-29T23:27:52.357 に答える