2012-09-11 56 views
0

我目前正在用Backbone.js和Middleman開發一個靜態網站(沒有後端或服務器的東西)。該網站沒有任何動態內容,只是普通的html代碼。但它在頁面和一些Javascript效果之間有一些轉換。在哪裏存儲用於Backbone.js的HTML模板

所以我想利用骨幹路由器的歷史,並希望動態地將視圖附加到與骨幹視圖的DOM。到現在爲止還挺好。

現在我想知道在哪裏存儲該網站的HTML部分,以便Backbone可以使用它。使用內聯腳本標記我認爲它太亂了,所以我想在不同的HTML文件中交換它。現在我可以通過requirejs動態加載HTML文件,但我認爲將所有HTML文件打包到一個JS文件並在第一次訪問該頁面時加載它會更好。

怎麼能這樣做?還是有人有更好的解決方案?

+0

通過這個堆棧的答案http://stackoverflow.com/a/9833462/1557322 –

+0

thx爲您的答案。我也看過木偶,但我認爲這對我的應用有點矯枉過正。我也忘記提及我使用Middleman來編譯和縮小JS和CSS文件。因此,我認爲將Middleman的所有HTML模板合併到一個文件並只加載一次是個好主意。或者你能告訴我如何組織我的HTML文件? – 23tux

+0

如果您願意使用諸如require.js(AMD模塊加載程序)之類的東西,則會有一個名爲text!的插件!它允許你定義HTML文件並將它們傳遞給你的應用程序。 require.js具有一個優化功能,可以縮小所有JS代碼,並將HTML內聯到我認爲的單個文件中。可能會有興趣。 – jmk2142

回答

0

很多researche後,我做這樣說:

  • 存儲模板在模板文件夾.jst.ejs
  • 包括它們與鏈輪
  • 使用JST加載模板

在主幹我使用的意見類來擴展新的視圖,並使用模板:

App.Views.Layout.Logo = Backbone.Views.extend({ 
    template: JST['templates/layout/logo'], 
    el: "#logo", 
}); 
+0

過去幾個月......這種方法是怎麼產生的? – fbynite

+0

它的工作原理是,我現在正在生產項目。在構建我的下一個應用程序時,我會仔細研究目前的骨幹版本,可能某事已經發生了變化。 – 23tux

1

如果您正在開發HTML5應用程序,那麼您可以使用應用程序脫機緩存來獲取所有必需的HTML文件和其他資源。它涉及編寫一個緩存清單文件。

以下網站提供了脫機功能和編寫清單文件的很好說明:http://diveintohtml5.info/offline.html

+0

thx,但我認爲它不符合我的需求。該應用程序不必脫機使用,我只想檢索一個文件,其中所有的html模板都合併在一起,然後動態地將它附加到主幹上。所以我正在尋找一種組織和合並模板的方法。 – 23tux

1

就我個人而言,我在不同的文件夾中分離骨幹的所有部分。因此,對於模板,我將每個模板文件夾放在一個單獨的文件中。這樣一邊開發一切都很乾淨。我使用「文本!」加載它們在require.js中的功能。

當我想把項目放在開發中時,我使用require.js的優化部分,它爲我縮小和組合所有文件。

希望有幫助。