1. 程式人生 > >beego設置靜態路由的幾種方法

beego設置靜態路由的幾種方法

github icp urn 靜態路由 ignore hub code ets url

方法一:

main.go裏:

beego.SetStaticPath("tests_url", "tests") //第一個是訪問的路徑,第二個是根下目錄

方法二:

package main

import (
    _ "./routers"
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/context" //註意:是這個context
    "log"
    "net/http"
    "strings"
)

func ignoreStaticPath() {
    //過濾器
    beego.InsertFilter("/", beego.BeforeRouter, TransparentStatic)
    beego.InsertFilter("/*", beego.BeforeRouter, TransparentStatic)
}

func TransparentStatic(ctx *context.Context){
    orpath := ctx.Request.URL.Path
    log.Println(orpath)
    //如果url中有api,則取消靜態路由重定向
    if strings.Index(orpath, "api") >= 0 {
        return
    }
    http.ServeFile(ctx.ResponseWriter, ctx.Request, "static/html/" + orpath)
}

func main() {
    ignoreStaticPath()
    beego.Run()
}

註意:導入的是github.com/astaxie/beego/context,而不是context

beego設置靜態路由的幾種方法