为了账号安全,请及时绑定邮箱和手机立即绑定

多个静态文件目录

多个静态文件目录

Go
阿波罗的战车 2022-09-19 10:09:33
在Go中,我们可以通过将静态文件的目录定义为静态目录来处理静态文件,如下所示:        fs := http.FileServer(http.Dir("./static/"))         http.Handle("/files/", fs)其中静态文件文件夹应位于二进制文件旁边。static另一种方法是使用新的作为://go embed        //go:embed static        var staticFiles embed.FS        // http.FS can be used to create a http Filesystem        var staticFS = http.FS(staticFiles)        fs := http.FileServer(staticFS) // embeded static files        // Serve static files        http.Handle("/static/", fs)但是,如果我想将我的大多数静态文件嵌入到二进制文件中,而有些则不是,可以与二进制文件一起使用,我试图混合上面定义的两种方法,但不起作用,只有那些运行平稳,下面的代码失败了,有什么想法吗?embedded        //go:embed static        var staticFiles embed.FS        // http.FS can be used to create a http Filesystem        var staticFS = http.FS(staticFiles)        fs := http.FileServer(staticFS) // embeded static files        // Serve static files        http.Handle("/static/", fs)        www := http.FileServer(http.Dir("./files/")) // side static files, to be beside binary        // Serve static files        http.Handle("/files/", www)
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

我找到了它,丢失了,下面与我完美配合,并有多个静态文件夹:http.StripPrefix


package main


import (

    "embed"

    "encoding/json"

    "fmt"

    "log"

    "net/http"

)


//go:embed static

var staticFiles embed.FS


func main() {

    go func() {

        http.HandleFunc("/favicon.ico", func(rw http.ResponseWriter, r *http.Request) {})

        // http.FS can be used to create a http Filesystem

        var staticFS = http.FS(staticFiles)

        fs := http.FileServer(staticFS) // embeded static files

        // Serve static files, to be embedded in the binary

        http.Handle("/static/", fs)


        // Serve public files, to be beside binary

        http.Handle("/public/", http.StripPrefix("/public/", http.FileServer(http.Dir("./files"))))


        http.HandleFunc("/getSkills", getSkills)

        log.Println("Listening on :3000...")

        err := http.ListenAndServe(":3000", nil)

        if err != nil {

            log.Fatal(err)

        }

}


查看完整回答
反对 回复 2022-09-19
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信