如何使用 Go Chi 提供静态文件?

    我正在学习 Go,但在使用我的服务器提供静态文件时遇到了问题。我总是得到 404。


请求是为了http://localhost:3001/static/breakfast.jpg


路由器+文件服务器


mux := chi.NewRouter()    

mux.Get("/", handlers.Repo.Home)

fileServer := http.FileServer(http.Dir("./static/"))

mux.Handle("/static/*", http.StripPrefix("/static", fileServer))

静态文件路径


root/static/

我的模板主页.tmpl


{{template "base" .}}


{{define "content"}}

<div class="container">

    <div class="row">

        <div class="col">

            <h1>Hi from home page</h1>

            <img src="/static/breakfast.jpg" width="1920" height="1080" alt="house" />

        </div>

    </div>

</div>

{{ end }}

我究竟做错了什么?


元芳怎么了
浏览 118回答 1
1回答

MM们

此来源告诉http.Dir您相对于您运行文件的目录提供main.go文件。如果你传递绝对路径那么它独立于此并且通过阅读代码更容易理解:http.Dir("/static/")(因为在您的情况下这是文件系统上的绝对路径)。请注意此处http.Dir所述的一些注意事项:(即它的目录分隔符是操作系统相关的,该方法可以遵循危险的符号链接,并且可以列出以点开头的文件并公开敏感目录,如.git)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go