使用 Golang 打造 Web 應用程式
  • Introduction
  • Go 環境配置
    • Go 安裝
    • GOPATH 與工作空間
    • Go 命令
    • Go 開發工具
    • 小結
  • Go 語言基礎
    • 你好,Go
    • Go 基礎
    • 流程和函式
    • struct
    • 物件導向
    • interface
    • 併發
    • 小結
  • Web 基礎
    • web 工作方式
    • Go 建立一個簡單的 web 服務
    • Go 如何使得 web 工作
    • Go 的 http 套件詳解
    • 小結
  • 表單
    • 處理表單的輸入
    • 驗證表單的輸入
    • 預防跨站指令碼
    • 防止多次提交表單
    • 處理檔案上傳
    • 小結
  • 存取資料庫
    • database/sql 介面
    • 使用 MySQL 資料庫
    • 使用 SQLite 資料庫
    • 使用 PostgreSQL 資料庫
    • 使用 beedb 函式庫進行 ORM 開發
    • NoSQL 資料庫操作
    • 小結
  • session 和資料儲存
    • session 和 cookie
    • Go 如何使用 session
    • session 儲存
    • 預防 session 劫持
    • 小結
  • 文字檔案處理
    • XML 處理
    • JSON 處理
    • 正則處理
    • 範本處理
    • 檔案操作
    • 字串處理
    • 小結
  • Web 服務
    • Socket 程式設計
    • WebSocket
    • REST
    • RPC
    • 小結
  • 安全與加密
    • 預防 CSRF 攻擊
    • 確保輸入過濾
    • 避免 XSS 攻擊
    • 避免 SQL 注入
    • 儲存密碼
    • 加密和解密資料
    • 小結
  • 國際化和本地化
    • 設定預設地區
    • 本地化資源
    • 國際化站點
    • 小結
  • 錯誤處理,除錯和測試
    • 錯誤處理
    • 使用 GDB 除錯
    • Go 怎麼寫測試案例
    • 小結
  • 部署與維護
    • 應用日誌
    • 網站錯誤處理
    • 應用部署
    • 備份和還原
    • 小結
  • 如何設計一個 Web 框架
    • 專案規劃
    • 自訂路由器設計
    • controller 設計
    • 日誌和配置設計
    • 實現部落格的增刪改
    • 小結
  • 擴充套件 Web 框架
    • 靜態檔案支援
    • Session 支援
    • 表單支援
    • 使用者認證
    • 多語言支援
    • pprof 支援
    • 小結
  • 參考資料
Powered by GitBook
On this page
  • beego 靜態檔案實現和設定
  • bootstrap 整合
  • links

Was this helpful?

  1. 擴充套件 Web 框架

靜態檔案支援

我們在前面已經講過如何處理靜態檔案,這小節我們詳細的介紹如何在 beego 裡面設定和使用靜態檔案。透過再介紹一個 twitter 開源的 html、css 框架 bootstrap,無需大量的設計工作就能夠讓你快速地建立一個漂亮的站點。

beego 靜態檔案實現和設定

Go 的 net/http 套件中提供了靜態檔案的服務,ServeFile和 FileServer 等函式。beego 的靜態檔案處理就是基於這一層處理的,具體的實現如下所示:

//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 提供服務。

舉例如下:

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 變數進行修改,依據自己的需求裁剪程式碼。

圖 14.1 bootstrap 站點

接下來我們利用 bootstrap 整合到 beego 框架裡面來,快速的建立一個漂亮的站點。

  1. 首先把下載的 bootstrap 目錄放到我們的專案目錄,取名為 static,如下截圖所示

    圖 14.2 專案中靜態檔案目錄結構

  2. 因為 beego 預設設定了 StaticDir 的值,所以如果你的靜態檔案目錄是 static 的話就無須再增加了:

StaticDir["/static"] = "static"
  1. 範本中使用如下的地址就可以了:

    //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 中來,如下展示的圖就是整合進來之後的展現效果圖:

圖 14.3 建構的基於 bootstrap 的站點介面

這些範本和格式 bootstrap 官方都有提供,這邊就不再重複貼程式碼,大家可以上 bootstrap 官方網站學習如何編寫範本。

links

Previous擴充套件 Web 框架NextSession 支援

Last updated 4 years ago

Was this helpful?

上一節:

下一節:

目錄
擴充套件 Web 框架
Session 支援