You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Chi路由服务静态文件夹?解决访问404错误

解决Go Chi路由静态资源404问题

你的代码问题出在http.StripPrefix的参数使用错误,当前你指定去掉/public/前缀,但实际请求的URL前缀是/api/static/,导致FileServer无法找到对应文件。

修正后的代码如下:

package main

import (
    "log"
    "net/http"

    "github.com/go-chi/chi/v5"
)

func main() {
    r := chi.NewRouter()

    // 修正StripPrefix的参数,去掉请求URL中的/api/static/前缀
    r.Handle("/api/static/*", http.StripPrefix("/api/static/", http.FileServer(http.Dir("./public"))))

    if err := http.ListenAndServe(":80", r); err != nil {
        log.Fatal(err)
    }
}

逻辑说明:

当你请求http://localhost/api/static/css/styles.css时:

  1. http.StripPrefix("/api/static/", ...)会将URL中的/api/static/部分移除,得到/css/styles.css
  2. http.FileServer(http.Dir("./public"))会在public目录下查找css/styles.css文件,正好匹配你的文件夹结构

这样就能正常访问静态资源了。

内容的提问来源于stack exchange,提问作者otaxhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:13:19