路由問題,下面是我使用的框架:與笨和Backbone.js的
- 笨
- 笨REST API
- Require.js
- Backbone.js的
運行應用:
- htaccess文件通過Codeigniter index.php文件重定向所有內容。
- Codeigniter中有一個默認路由設置可以調用「開始」控制器。
- 開始控制器調用開始視圖(Codeigniter中唯一的視圖)。
- 開始視圖包含整個網站的模板,並打電話開始Require.js
- Require.js啓動Backbone和應用程序按預期工作。
問題:路由到其他骨幹網訪問量:
- 現在我想通過骨幹網與其他骨幹「意見」的路線。
- 問題是當我嘗試在HREF htaccess文件觸發時提供像「localhost/otherPage」這樣的鏈接,並且Codeigniter試圖找到該控制器,並且我得到由Codeigniter生成的404。
- 我試過在Backbone中使用`app.navigate(「otherPage」,{trigger:true});`強制路由而不是HREF,`但我得到了Codeigniter生成的相同的404錯誤。
我應該採取什麼方向:
- 我想繼續使用笨它的RESTful API,因此模型和一些特殊的驗證功能。
- 我也想在前端使用Backbone和Require。
- 我可以將htacess重定向更改爲啓動Require和Backbone的index.html文件。如果我使用這種方法,Codeigniter RESTFUL API控制器仍能正常啓動嗎?
- 我是否在Codeigniter中爲每個頁面創建一個視圖並讓每個頁面都啓動Require + Backbone爲每個視圖創建一個新的視圖?
- 我將很快考慮Node.js。我應該只是拋棄框架的Codeigniter方面,並在Node.js上全身心投入?
任何指導非常感謝。
所以我垃圾我的htaccess文件,並有一個start.index文件加載骨幹?當我在Codeigniter中調用RESTFUL API時,框架會通過控制器調用啓動(使用自動加載等)嗎?這是我有麻煩理解的主要問題。 – Lowkase 2013-03-28 16:56:25
不可以,你仍然可以保留你的兩臺路由器,因爲它們不能同時工作:Backbone的路由器會處理hashtag的變化(客戶端,你沒有對服務器進行任何調用),CodeIgniter將處理url變化(服務器端,調用服務器 - 當然只有你的AJAX REST調用)。您的REST調用將不得不由CodeIgniter(從未使用它)RESTFUL API進行路由。 – Loamhoof 2013-03-28 18:21:43
@Lowkase Loamhoof提出的解決方案非常好。要回答你的問題:對CodeIgniter的REST API調用將啓動框架的自動加載。 Codeigniter不會區分來自瀏覽器或Backbone.fetch()的GET請求。問題是:爲什麼你需要保持CodeIgniter路由器?轉儲Codeigniter MVC的View部分,並用Backbone的MV *完全替代它。除了第一次調用start.index.html引導您的RequireJs/Backbone之外,所有路由都由Backbone的路由器完成。 – 2013-04-01 18:07:56