2

Backbone.js を使用してブラウザの履歴を処理しようとしています。これを処理したくないため、ビュー/モデルを設定していません。おそらくこれが原因で、正しく機能していません。

この時点で、私のページは URL を変更しています。お気に入り:

domain.com/services
domain.com/products
domain.com/contact
domain.com/gallery
domain.com/gallery/photo1

問題は、domain.com/gallery/photo1 でページをリロードしようとした場合です。Uncaught SyntaxError: Unexpected token <というエラーが表示されます。

1 レベルのパーマリンクのみを含む他のすべてのページは、リロード時に適切に機能します。Backbone に何か足りないものはありますか?

Backbone.Router と Backbone.history を使用しています。

backbone.js を使用してサイトをセットアップする方法に関する簡単なチュートリアルはありますか? 歴史のことだけ?

これが私のスクリプトです:

var Router;
var myRouter;

$(document).ready(function(){
    Router = Backbone.Router.extend({
        initialize : function(options) {
            //
        },
        routes: {
            '' : 'home',
            '*actions' : 'pages'
        },
        home : function() {
            this.render('/');
        },
        pages : function(actions) {
            this.render(actions);
        },
        render : function(path) {
            var fullLine = '';
            path = (path === '/' || path === '')? '/' : path;
            console.log('path: ' + path);
        }
    });

    myRouter = new Router();

    Backbone.emulateHTTP = true;
    Backbone.emulateJSON = true;
    Backbone.history.start({pushState: true, root: "/backbone_teste/"});

    // MENU CLICK
    $('.menu').children('li').each(function(){
        $(this).click(function(){
            myRouter.navigate($(this).attr('data-id'), true, true);
        });
    });
});

ご協力いただきありがとうございます!

4

1 に答える 1

2

問題が解決しました:

index.php ファイルの head セクションに次のコードを追加しました。

<base href="http://localhost/backbone_teste/" />

そして、それは機能します。

とにかく、なぜこれが起こるのか、なぜBackbone.jsのドキュメントがこれについて言及していないのかを知りたい.

このリンクで解決策を見つけました: HTML5 History / pushState URLs, .htaccess and You

ありがとう

于 2012-07-24T19:21:20.027 に答える