0
我使用PHP MVC Codeigniter作爲後端和BackboneJS作爲我的應用程序的前端。我使用pushState:true
-功能,並將以下代碼添加到我的根index.php,以便在嘗試重新加載URL或將URL發送給其他用戶時,我的頁面返回有效的URL。Codeigniter + BackboneJS路由問題
$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,我想避免完全。有沒有人知道問題出在這裏?
在此先感謝...
也許您已將「#」添加到您在hrefs中添加的網址中? Backbone不會爲視圖組件(例如按鈕)生成URL。 –
好吧,我刪除了「#」,是的,現在它已經沒了,但現在我得到404錯誤... – SHT
然後你的服務器沒有正確管理URL路由(假設你還沒有定義404錯誤的骨幹路由)。 –