1

この質問に関して質問を拡張したかったのです。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 でうまくいきましたか?

4

1 に答える 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 に答える