2016-08-08 8 views
1

Ich habe eine einfache App mit Backbone und Marionette erstellt. Es funktioniert einwandfrei, keine Fehler oder so ähnlich. Aber wenn ich die URL sah, hat es eine Hash vor URL hat, hier ist mein LinkBackbone: Entfernen Hash von vorne in URL

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

Ich will es sauberer machen und besser lesbar, mag ich den hastag entfernen und ersetzen durch / so die URL sieht aus wie diese

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

und auch dies

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

ich viel Antwort versucht, dieser Frage zugreifen können

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

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

Ich versuchte pushstate zu wahren, wie dies

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

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

Ich habe versucht, um eine .htaccess-Datei

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

Aber alle funktionieren nicht für mich :(bitte helfen Sie mir alle aus.

+1

Ich glaube nicht, dass Sie dies tun können, denn wenn Sie Hash entfernen, dann wird es für serverseitige Routing nicht clientseitige Routing gehen und Sie brauchen Hash für nicht HTML5-Browser –

Antwort

0

das funktioniert für mich.

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