我們在前面已經講過如何處理靜態(tài)文件,這小節(jié)我們詳細的介紹如何在beego里面設置和使用靜態(tài)文件。通過再介紹一個twitter開源的html、css框架bootstrap,無需大量的設計工作就能夠讓你快速地建立一個漂亮的站點。
Go的net/http包中提供了靜態(tài)文件的服務,ServeFile和FileServer等函數(shù)。beego的靜態(tài)文件處理就是基于這一層處理的,具體的實現(xiàn)如下所示:
//static file server
for prefix, staticDir := range StaticDir {
if strings.HasPrefix(r.URL.Path, prefix) {
file := staticDir + r.URL.Path[len(prefix):]
http.ServeFile(w, r, file)
w.started = true
return
}
}
StaticDir里面保存的是相應的url對應到靜態(tài)文件所在的目錄,因此在處理URL請求的時候只需要判斷對應的請求地址是否包含靜態(tài)處理開頭的url,如果包含的話就采用http.ServeFile提供服務。
舉例如下:
beego.StaticDir["/asset"] = "/static"
那么請求url如http://www.beego.me/asset/bootstrap.css就會請求/static/bootstrap.css來提供反饋給客戶端。
Bootstrap是Twitter推出的一個開源的用于前端開發(fā)的工具包。對于開發(fā)者來說,Bootstrap是快速開發(fā)Web應用程序的最佳前端工具包。它是一個CSS和HTML的集合,它使用了最新的HTML5標準,給你的Web開發(fā)提供了時尚的版式,表單,按鈕,表格,網格系統(tǒng)等等。
http://wiki.jikexueyuan.com/project/go-web-programming/images/14.1.bootstrap.png?raw=true" alt="" />
圖14.1 bootstrap站點
接下來我們利用bootstrap集成到beego框架里面來,快速的建立一個漂亮的站點。
首先把下載的bootstrap目錄放到我們的項目目錄,取名為static,如下截圖所示
http://wiki.jikexueyuan.com/project/go-web-programming/images/14.1.bootstrap2.png?raw=true" alt="" />
圖14.2 項目中靜態(tài)文件目錄結構
因為beego默認設置了StaticDir的值,所以如果你的靜態(tài)文件目錄是static的話就無須再增加了:
StaticDir["/static"] = "static"
模板中使用如下的地址就可以了:
//css文件
<link href="/static/css/bootstrap.css" rel="stylesheet">
//js文件
<script src="/static/js/bootstrap-transition.js"></script>
//圖片文件
<img src="/static/img/logo.png">
上面可以實現(xiàn)把bootstrap集成到beego中來,如下展示的圖就是集成進來之后的展現(xiàn)效果圖:
http://wiki.jikexueyuan.com/project/go-web-programming/images/14.1.bootstrap3.png?raw=true" alt="" />
圖14.3 構建的基于bootstrap的站點界面
這些模板和格式bootstrap官方都有提供,這邊就不再重復貼代碼,大家可以上bootstrap官方網站學習如何編寫模板。