2

BackboneとYeomanを使用してアプリを作成しています。ルーティングに問題があります。

次のルートを設定しています。

'test' : testMethod,
'' : index

私はpushstateを設定しました:

Backbone.history.start({pushState: true});

Chromeを使用しています

入力するとmyApp.com#test、URLがに変わり、myApp.com/test正しくtestMethod()起動します。

myApp.com/testただし、ブラウザがURLを#から/に変更した後で直接gotoを実行するか、更新しようとすると、404が表示されます。

ページをテストするためにYeoman組み込みサーバーを使用しています。これが問題の原因である可能性がありますか?

4

1 に答える 1

3

Yeoman 内で BBB を使用しているかどうかはわかりません。もしそうなら、これは問題ではありません。BBB を使用していない場合、これは既知の問題です。BBB では、pushstate を使用するように書き換えルールが正しく設定されていますが、yeoman の組み込みサーバーはこれを採用していないようです。独自の書き換えルールで grunt.js ファイルを編集して、pushstate を正しく機能させることができます。上記のリンクの一部のユーザーは、これを成功させています。

アプリが公開されると、サーバーを介してこれらの URL を提供するか、書き換えルールを編集して同じことを行う必要があります。後者で、アプリケーションが SEO に依存している場合、SEO は大きな打撃を受けます。

于 2012-12-16T06:03:04.640 に答える