2016-02-21 24 views
1

我開始學習捕捉框架。我試圖以簡單的方式呈現html文件和佈局html文件(「模板」)。也就是說,我有一個共享的html文件,我想用它作爲我網站中所有頁面的模板。我怎樣才能做到這一點?而且,一個類似的問題,我如何呈現一個HTML文件?如何在快照中使用html文件?

更新:

我不想增加一個新的水平的障礙。有沒有什麼可以避免使用海斯特?

+0

你看過[本頁](http://snapframework.com/docs/tutorials/heist)嗎? – Bakuriu

+0

@Bakuriu,我不想再添加一個新的障礙。有沒有什麼可以避免使用海斯特? –

回答

2

服務靜態文件的最簡單方法是使用serveFile。你可能會在你的路線是這樣的:

[ ...your routes here 
, ("markup", serveFile "mymarkup.html") 
] 

這使得它,以便當用戶進入http://yoursite/markup,文件mymarkup.html在任何目錄,你跑從被服務的應用程序。如果您嘗試提供多種不同的HTML文件,更好的解決方案是serveDirectory。你可能會使用這樣的:

[ ...your routes here 
, ("static", serveDirectory "html") 
] 

這使得它,以便當用戶進入http://yoursite/static/mymarkup.html,文件html/mymarkup.html得到服務。

對於你如何讓一個文件成爲你所有頁面的模板的問題,這正是海斯特爲你做的!當然有避免使用海斯特的方法,但是你可能會重塑海斯特爲你做的很多事情。在你問的基本層面上,海斯特相當簡單。所有有效的HTML文件都是有效的Heist模板。我建議通過tutorial來閱讀,比如Bakuriu提到的。我相信海斯特的apply標籤幾乎就是你要找的。

+0

我可以在任何其他Web框架中使用Heist嗎,比如Scotty? –

+0

是的。海斯特專門設計成不依賴於Snap的任何內容。但是,您可能必須使用其他框架編寫更多基礎結構代碼,而不是使用Snap處理代碼。例如,[這個軟件包](http://hackage.haskell.org/package/happstack-heist)具有少量的基礎架構代碼,這使得Heist和Happstack的使用變得更加容易。 – mightybyte