2016-02-18 36 views
2

我正在使用angularjs和ui-router的代碼人,就像在this seed project中一樣,我想從this seed project中刪除/#/ URL,所以我用:在我的app.js .config當使用html5mode刷新頁面或粘貼URL時,使用codeigniter的ui路由器會提供404(true)

$urlRouterProvider.otherwise('/'); $locationProvider.html5Mode(true); ,我也index.php添加<base href="/">

現在我沒有對URL的/#/但是當我刷新頁面,我收到了404,另外,如果我複製一個工作URL(我得到它從主視圖),並粘貼在URL行我也收到了404消息。

我見過this question但我不想重寫我的404,我不認爲這是明智的。

和想法?

+3

需要處理服務器端http://stackoverflow.com/questions/16569841/angularjs-html5-mode-reloading-the-page-gives-wrong-get-request/16570533#16570533 – xkcd149

+0

謝謝@ xkcd149,我張貼我如何解決這個問題,並給你信用,謝謝你的參考! – FireBrand

回答

2

由於xkcd149的鏈接this answer我想通了,在codeiginiter 3切換路由,這樣你會總是通過您的CI根控制器應該是這樣的:

/application/config/routes.php

$route['default_controller'] = 'home'; //can have any name you want 
$route['exampleUrl'] = 'home'; 
$route['anotherUrl/(:any)'] = 'home'; //this url passes a parameter 
$route['anotherUrl/(:any)/(:any)'] = 'home'; //this one passes 2 parameters 

希望這可以幫助別人。

+0

嘿!我正在經歷同樣的問題。到目前爲止,我已經達到了你上面所說的,但是當我嘗試提出申請時(比如「people/get」),我得到了「家庭」視圖...我做錯了什麼? –

+0

我假設路由上的默認值是'/'',所以你可能在試圖訪問的URL時遇到問題。 – FireBrand

相關問題