Files
build-web-application-with-…/zh-tw/14.1.md
2019-02-26 01:40:54 +08:00

81 lines
3.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 14.1 靜態檔案支援
我們在前面已經講過如何處理靜態檔案這小節我們詳細的介紹如何在beego裡面設定和使用靜態檔案。透過再介紹一個twitter開源的html、css框架bootstrap無需大量的設計工作就能夠讓你快速地建立一個漂亮的站點。
## beego靜態檔案實現和設定
Go的net/http套件中提供了靜態檔案的服務`ServeFile``FileServer`等函式。beego的靜態檔案處理就是基於這一層處理的具體的實現如下所示
```Go
//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對應到靜態檔案所在的目錄因此在處理URL請求的時候只需要判斷對應的請求地址是否包含靜態處理開頭的url如果包含的話就採用http.ServeFile提供服務。
舉例如下:
```Go
beego.StaticDir["/asset"] = "/static"
```
那麼請求url如`http://www.beego.me/asset/bootstrap.css`就會請求`/static/bootstrap.css`來提供反饋給客戶端。
## bootstrap整合
Bootstrap是Twitter推出的一個開源的用於前端開發的工具套件。對於開發者來說Bootstrap是快速開發Web應用程式的最佳前端工具套件。它是一個CSS和HTML的集合它使用了最新的HTML5標準給你的Web開發提供了時尚的版式表單按鈕表格網格系統等等。
- 元件
  Bootstrap中包含了豐富的Web元件根據這些元件可以快速的建立一個漂亮、功能完備的網站。其中包括以下元件
  下拉選單、按鈕組、按鈕下拉選單、導航、導覽列、麵套件屑、分頁、排版、縮圖、警告對話方塊、進度條、媒體物件等
- Javascript外掛
  Bootstrap自帶了13個jQuery外掛這些外掛為Bootstrap中的元件賦予了“生命”。其中包括
  模式對話方塊、標籤頁、滾動條、彈出框等。
- 訂製自己的框架程式碼
  可以對Bootstrap中所有的CSS變數進行修改依據自己的需求裁剪程式碼。
![](images/14.1.bootstrap.png?raw=true)
圖14.1 bootstrap站點
接下來我們利用bootstrap整合到beego框架裡面來快速的建立一個漂亮的站點。
1. 首先把下載的bootstrap目錄放到我們的專案目錄取名為static如下截圖所示
![](images/14.1.bootstrap2.png?raw=true)
圖14.2 專案中靜態檔案目錄結構
2. 因為beego預設設定了StaticDir的值所以如果你的靜態檔案目錄是static的話就無須再增加了
```Go
StaticDir["/static"] = "static"
```
3. 範本中使用如下的地址就可以了:
```html
//css檔案
<link href="/static/css/bootstrap.css" rel="stylesheet">
//js檔案
<script src="/static/js/bootstrap-transition.js"></script>
//圖片檔案
<img src="/static/img/logo.png">
```
上面可以實現把bootstrap整合到beego中來如下展示的圖就是整合進來之後的展現效果圖
![](images/14.1.bootstrap3.png?raw=true)
圖14.3 建構的基於bootstrap的站點介面
這些範本和格式bootstrap官方都有提供這邊就不再重複貼程式碼大家可以上bootstrap官方網站學習如何編寫範本。
## links
* [目錄](<preface.md>)
* 上一節: [擴充套件Web框架](<14.0.md>)
* 下一節: [Session支援](<14.2.md>)