php小编苹果为您介绍如何使用Chi路由器提供静态文件夹服务。Chi是一个轻量级的Go语言Web框架,它提供了简洁、高效的路由功能。通过Chi,我们可以轻松地搭建一个静态文件夹服务,将静态文件直接展示在浏览器中。本文将详细介绍如何配置Chi路由器并提供静态文件夹服务,让您的网站更加高效和便捷。让我们来一起了解吧!
问题内容
我想提供具有以下形式的文件夹:
my-project/
- public/ <- The folder that I want to serve and also all the subfolders and files
- css/
- styles.css
- js/
- script.js
- main.go
我想使用URL的http://localhost/api/static/css/styles.css
和http://localhost/api/static/js/script.js
来访问它
所以我尝试做下一步:
package main
import (
"log"
"net/http"
"github.com/go-chi/chi/v5"
)
func main() {
r := chi.NewRouter()
r.Handle("/api/static/*", http.StripPrefix("/public/", http.FileServer(http.Dir("./public"))))
if err := http.ListenAndServe(":80", r); err != nil {
log.Fatal(err)
}
}
这不起作用,当我尝试访问 http://localhost/api/static/css/styles.css
或 http://localhost/api/static/js/script 时,它会给我一个 HTTP 404 错误代码.js
解决方法
您必须从路径中剥离 /api/static
,因此,例如,如果请求来自 /api/static/css/styles.css
,剥离它将留下 css/styles.css
,这将在 ./public
下查找,得到 ./public/css/styles.css
。