使用Backbone.js处理浏览器历史记录

Using Backbone.js to handle browser history

本文关键字:历史 记录 浏览器 处理 Backbone js 使用      更新时间:2024-01-29

我正在尝试使用Backbone.js来处理浏览器历史记录。我没有设置视图/模型,因为我不想让它处理这个问题,可能正因为如此,我无法让它正常工作。

此时,我的页面正在更改url。类似:

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

问题是:如果我尝试在domain.com/gallery/photo1上重新加载页面。我得到错误未捕获的SyntaxError:意外的令牌<

只有一级永久链接的所有其他页面在重新加载时都能正常工作。我在Backbone上遗漏了什么吗?

我只是在使用主干网。路由器和主干网。历史。

有没有关于如何使用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);
        });
    });
});

谢谢你的帮助!

问题已解决:

我刚刚在index.php文件的头部分添加了以下代码:

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

它是有效的。

无论如何,我想知道为什么会发生这种情况,以及为什么Backbone.js文档没有提到这一点。

我在这个链接上找到了解决方案:HTML5历史/pushState URL,.htaccess和You

感谢