Codeigniter + BackboneJS路由问题

时间:2014-03-24 12:29:56

标签: php codeigniter backbone.js backbone-routing

我正在使用PHP MVC Codeigniter作为后端,BackboneJS作为我的应用程序的前端。我使用了pushState:true - 函数并将以下代码添加到我的根index.php中,以便我的页面在尝试重新加载或向其他用户发送URL时返回有效的URL。

$url = preg_replace('/^myproject\//', '', ltrim($_SERVER['QUERY_STRING'], '/'));

$urlPatterns = array (
'home', 
'nyheder',
'artists' ,
'artists\/[a-zA-Z]',
'releases',
'live',
'videoes' ,
'competitions' ,
'remix' ,
'[0-9]+' ,
'[0-9]+\/videos',
'[0-9]+\/releases'
);

if(!(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')) {
foreach ($urlPatterns as $pattern) {
    $pattern = "/^{$pattern}$/";
    if (preg_match($pattern, $url)) {
       readfile('application/views/home.php'); die();
    }
  }
}

到目前为止它仍然有效,但是一旦我右键单击并“在新标签页中打开”,它会自动添加一个#hashtag,我想完全避免。有谁知道这里的问题是什么?

提前致谢...

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题!

除了设置pushState:true之外,我还将根文件夹添加到我的<a href> - 代码中,因此,如果网址为http://yoursite.dk/project,则HTML中的链接必须为{{1} }

这使它有效!