av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)GoFrame教程:GoFrame高級(jí)特性-靜態(tài)文件服務(wù)

靜態(tài)文件服務(wù)配置

默認(rèn)情況下,?gf Server?關(guān)閉了靜態(tài)文件服務(wù)的功能,如果開(kāi)發(fā)者配置了靜態(tài)文件目錄,那么靜態(tài)文件服務(wù)將會(huì)自動(dòng)開(kāi)啟。

成都創(chuàng)新互聯(lián)是一家專(zhuān)注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計(jì),向陽(yáng)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:向陽(yáng)等地區(qū)。向陽(yáng)做網(wǎng)站價(jià)格咨詢:18982081108

靜態(tài)文件服務(wù)涉及到的常用配置方法如下:

// 設(shè)置http server參數(shù) - ServerRoot
func (s *Server) SetServerRoot(root string)

// 添加靜態(tài)文件搜索目錄,必須給定目錄的絕對(duì)路徑
func (s *Server) AddSearchPath(path string)

// 設(shè)置http server參數(shù) - IndexFiles,默認(rèn)展示文件,如:index.html, index.htm
func (s *Server) SetIndexFiles(index []string)

// 是否允許展示訪問(wèn)目錄的文件列表
func (s *Server) SetIndexFolder(enabled bool)

// 添加URI與靜態(tài)目錄的映射
func (s *Server) AddStaticPath(prefix string, path string)

// 靜態(tài)文件服務(wù)總開(kāi)關(guān):是否開(kāi)啟/關(guān)閉靜態(tài)文件服務(wù)
func (s *Server) SetFileServerEnabled(enabled bool)

// 設(shè)置URI重寫(xiě)規(guī)則
func (s *Server) SetRewrite(uri string, rewrite string)

// 設(shè)置URI重寫(xiě)規(guī)則(批量)
func (s *Server) SetRewriteMap(rewrites map[string]string)

簡(jiǎn)要介紹:

  1. ?IndexFiles?為當(dāng)訪問(wèn)目錄時(shí)默認(rèn)檢索的文件名稱列表(按照?slice?先后順序進(jìn)行檢索),當(dāng)檢索的文件存在時(shí)則返回文件內(nèi)容,否則展示目錄列表(?SetIndexFolder?為?true?時(shí)),默認(rèn)的?IndexFiles?為:?index.html?, ?index.htm?;
  2. ?SetIndexFolder?為設(shè)置是否在用戶訪問(wèn)文件目錄,且沒(méi)有在目錄下檢索到?IndexFiles?時(shí),則展示目錄下的文件列表,默認(rèn)為關(guān)閉;
  3. ?SetServerRoot?為設(shè)置默認(rèn)提供服務(wù)的靜態(tài)文件目錄,該目錄會(huì)被自動(dòng)添加到?SearchPath?中的第一個(gè)搜索路徑;
  4. ?AddSearchPath?為添加靜態(tài)文件檢索目錄,可以有多個(gè),按照文件目錄添加的先后順序執(zhí)行優(yōu)先級(jí)檢索;
  5. ?AddStaticPath?為添加URI與目錄路徑的映射關(guān)系,可以自定義靜態(tài)文件目錄的訪問(wèn)URI規(guī)則;
  6. ?SetRewrite?/?SetRewriteMap?為重寫(xiě)規(guī)則設(shè)置(類(lèi)似于?nginx?的?rewrite?),嚴(yán)格上來(lái)講不僅僅是靜態(tài)文件服務(wù),當(dāng)然也支持動(dòng)態(tài)的路由注冊(cè)的?rewrite?;

設(shè)置靜態(tài)文件服務(wù)的目錄路徑時(shí),可以使用絕對(duì)路徑,也可以使用相對(duì)路徑,例如設(shè)置當(dāng)前運(yùn)行目錄提供靜態(tài)文件服務(wù)可以使用?SetServerRoot(".")?。

開(kāi)發(fā)者可以設(shè)置多個(gè)文件目錄來(lái)提供靜態(tài)文件服務(wù),并且可以設(shè)置目錄及?URI?的優(yōu)先級(jí),但是一旦通過(guò)?SetFileServerEnabled?關(guān)閉了靜態(tài)服務(wù),所有靜態(tài)文件/目錄的訪問(wèn)都將失效。

示例1, 基本使用

package main

import "github.com/GOgf/gf/v2/frame/g"

// 靜態(tài)文件服務(wù)器基本使用
func main() {
    s := g.Server()
    s.SetIndexFolder(true)
    s.SetServerRoot("/Users/john/Temp")
    s.AddSearchPath("/Users/john/Documents")
    s.SetPort(8199)
    s.Run()
}

示例2,靜態(tài)目錄映射

package main

import "github.com/gogf/gf/v2/frame/g"

// 靜態(tài)文件服務(wù)器,支持自定義靜態(tài)目錄映射
func main() {
    s := g.Server()
    s.SetIndexFolder(true)
    s.SetServerRoot("/Users/john/Temp")
    s.AddSearchPath("/Users/john/Documents")
    s.AddStaticPath("/my-doc", "/Users/john/Documents")
    s.SetPort(8199)
    s.Run()
}

示例3,靜態(tài)目錄映射,優(yōu)先級(jí)控制

靜態(tài)目錄映射的優(yōu)先級(jí)按照綁定的?URI?精準(zhǔn)度進(jìn)行控制,綁定的?URI?越精準(zhǔn)(深度優(yōu)先匹配),那么優(yōu)先級(jí)越高。

package main

import "github.com/gogf/gf/v2/frame/g"

// 靜態(tài)文件服務(wù)器,支持自定義靜態(tài)目錄映射
func main() {
    s := g.Server()
    s.SetIndexFolder(true)
    s.SetServerRoot("/Users/john/Temp")
    s.AddSearchPath("/Users/john/Documents")
    s.AddStaticPath("/my-doc", "/Users/john/Documents")
    s.AddStaticPath("/my-doc/test", "/Users/john/Temp")
    s.SetPort(8199)
    s.Run()
}

其中,訪問(wèn)?/my-doc/test?的優(yōu)先級(jí)會(huì)比?/my-doc?高,因此假如?/Users/john/Documents?目錄下存在?test?目錄(與自定義的?/my-doc/test?沖突),將會(huì)無(wú)法被訪問(wèn)到。

示例4,URI重寫(xiě)

?gf?框架的靜態(tài)文件服務(wù)支持將任意的?URI?重寫(xiě),替換為制定的?URI?,使用?SetRewrite?/?SetRewriteMap?方法。

示例,在?/Users/john/Temp?目錄下只有兩個(gè)文件?test1.html?及?test2.html?。

package main

import "github.com/gogf/gf/v2/frame/g"

func main() {
	s := g.Server()
	s.SetServerRoot("/Users/john/Temp")
	s.SetRewrite("/test.html", "/test1.html")
	s.SetRewriteMap(g.MapStrStr{
		"/my-test1": "/test1.html",
		"/my-test2": "/test2.html",
	})
	s.SetPort(8199)
	s.Run()
}

執(zhí)行后,

  1. 當(dāng)我們?cè)L問(wèn) ?/test.html? ,其實(shí)最終被重寫(xiě)到了 ?test1.html?,返回的是該文件內(nèi)容;
  2. 當(dāng)我們?cè)L問(wèn) ?/my-test1? ,其實(shí)最終被重寫(xiě)到了 ?test1.html?,返回的是該文件內(nèi)容;
  3. 當(dāng)我們?cè)L問(wèn) ?/my-test2? ,其實(shí)最終被重寫(xiě)到了 ?test2.html?,返回的是該文件內(nèi)容;


網(wǎng)頁(yè)標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame高級(jí)特性-靜態(tài)文件服務(wù)
標(biāo)題鏈接:http://uogjgqi.cn/article/dhjphhj.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流