2012-12-17 93 views
6

我有一個backbone.js單頁面應用程序,所有設置與路由器(嗯,實際上是一個Backbone.Marionette AppRouter Backbone.Marionette應用程序,但不過)。但是,後端基於Django,我沒有指定URL來查看已經在backbone.js路徑中的所有URL。Django的URL配置和Backbone.js路由器

基於Django URL conf中的現有URL,Backbone.js將服務於骨幹路由,而不管Django conf中列出的是什麼 - 看起來有些事情,任何事情都需要在那裏。

我是否需要有適當的Django視圖才能爲舊版瀏覽器/ SEO提供回退?

協調Django URL conf和Backbone.js路由器的最佳實踐是什麼?

回答

2

我發現解決這個問題很好帖子:

http://duganchen.ca/single-page-web-app-architecture-done-right/

簡單地說,我對其中一個備用的推理是對非JavaScript的瀏覽器和搜索引擎優化的原因。在這篇文章發佈時,非JavaScript的瀏覽器佔用戶的1.4%(不到我讀過的所有內容的2%),使得SEO成爲主要的考慮因素。再說一次,搜索引擎優化可能不適合每個人閱讀這篇文章,在這種情況下,這可以跳過。

我發現托馬斯戴維斯的教程使用phantom.js相當有幫助。 http://backbonetutorials.com/seo-for-single-page-apps/

但是,我需要考慮的另一個問題是歷史API,除了最新的IE瀏覽器以外,它都被忽略。鑑於我的客戶的用戶,其中約15%使用IE < = 9,這也是一個問題。

最後,我還需要使用history.js。總之,這是很多工作來更新一個非常簡單的網站。不過,我從這個磨難中學到了很多東西。

1

在我看來,如果你的骨幹應用程序真的是一個頁面,那麼你不需要任何django的意見。你可以將你的index.html作爲一個靜態文件(在生產中,甚至不用django),然後讓backbone的路由器負責你的url配置,就像你已經做的那樣。您可以使用骨幹的歷史記錄並導航到假的網址,爲您的應用中的資源添加網址參數等。

+0

謝謝!我希望說明一個非JavaScript的後備,並需要考慮搜索引擎優化。看到我上面的答案。 – snakesNbronies