Backbone:从URL中删除前面的哈希值

时间:2016-08-08 03:01:06

标签: javascript backbone.js marionette

我用Backbone和Marionette创建了一个简单的应用程序。它工作正常,没有错误或类似的东西。但是当我看到网址时,网址前面有一个哈希值,这里是我的链接

programming/index.html#chart 
programming/index.html#tutorial/3 
programming/index.html#tutorial/6

我想让它更清晰,更具可读性,我想删除hastag并替换为/所以URL看起来像这样

programming/index.html/chart
programming/index.html/tutorial/3
programming/index.html/tutorial/6

也可以访问它

programming/chart
programming/tutorial/3
programming/tutorial/6

我尝试了很多这个问题的答案

Routing in Backbone.js / Marionette.js - no hashtags, route list and sub-routers

BackboneJS - Router issues - how to get clean URL's

我尝试将pushState设为true,就像这样

programming.on('start',function(){
    if(Backbone.history){
        Backbone.history.start({
            pushState : true
        });  

        if(this.getCurentRoute() === ""){
            programming.trigger("program:list")
        }
    }
})

我尝试制作.htaccess文件

<IfModule mod_rewrite.c>
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ /#$1 [R,L,NE]
</IfModule>

但他们都没有为我工作:(请大家帮助我。

1 个答案:

答案 0 :(得分:0)

这对我有用。

$('body').delegate('a[href]:not([href^=\#])', 'click', function (e) {
   e.preventDefault();
   Backbone.history.navigate($(this).attr('href'), {trigger: true});
});