静态文件服务配置
默认情况下,gf Server
关闭了静态文件服务的功能,如果开发者配置了静态文件目录,那么静态文件服务将会自动开启。
...
Tips: 设置静态文件服务的目录路径时,可以使用绝对路径,也可以使用相对路径,例如设置当前运行目录提供静态文件服务可以使用
SetServerRoot(".")
。开发者可以设置多个文件目录来提供静态文件服务,并且可以设置目录及URI的优先级,但是一旦通过
SetFileServerEnabled
关闭了静态服务,所有静态文件/目录的访问都将失效。
示例1, 基本使用
package main
import "github.com/gogf/gf/frame/g"
// 静态文件服务器基本使用
func main() {
s := g.Server()
s.SetIndexFolder(true)
s.SetServerRoot("/Users/john/Temp")
s.AddSearchPath("/Users/john/Documents")
s.SetPort(8199)
s.Run()
}
示例2,静态目录映射
package main
import "github.com/gogf/gf/frame/g"
// 静态文件服务器,支持自定义静态目录映射
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,静态目录映射,优先级控制
静态目录映射的优先级按照绑定的URI
精准度进行控制,绑定的URI越精准(深度优先匹配),那么优先级越高。
...
其中,访问/my-doc/test
的优先级会比/my-doc
高,因此假如/Users/john/Documents
目录下存在test
目录(与自定义的/my-doc/test
冲突),将会无法被访问到。
示例4,URI重写
gf
框架的静态文件服务支持将任意的URI
重写,替换为制定的URI
,使用SetRewrite/SetRewriteMap
方法。
...