Go 語言內部其實已經提供了 http.ServeFile
,通過這個函數可以實現靜態文件的服務。
beego 針對這個功能進行了一層封裝,通過下面的方式進行靜態文件注冊:
beego.SetStaticPath("/static","public")
- 第一個參數是路徑,url 路徑信息
- 第二個參數是靜態文件目錄(相對應用所在的目錄)
beego 支持多個目錄的靜態文件注冊,用戶可以注冊如下的靜態文件目錄:
beego.SetStaticPath("/images","images") beego.SetStaticPath("/css","css") beego.SetStaticPath("/js","js")
設置了如上的靜態目錄之后,用戶訪問 /images/login/login.png
,那么就會訪問應用對應的目錄下面的 images/login/login.png
文件。
如果是訪問 /static/img/logo.png
,那么就訪問 public/img/logo.png
文件。
默認情況下 beego 會判斷目錄下文件是否存在,不存在直接返回 404 頁面,如果請求的是 index.html
,那么由於 http.ServeFile
默認是會跳轉的,不提供該頁面的顯示。
因此 beego 可以設置 beego.BConfig.WebConfig.DirectoryIndex=true
這樣來使得顯示 index.html
頁面。而且開啟該功能之后,用戶訪問目錄就會顯示該目錄下所有的文件列表。