gpt4 book ai didi

http - 使用 net/http FileServer 服务文件导致 404

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:50 26 4
gpt4 key购买 nike

我正在用 Go 制作一个小型独立服务。 UI 需要一些 JS 库,所以我想,我会使用 http.FileServer 来提供来自 node_modules 的 JS 文件

router := chi.NewRouter()
router.Use(middleware.RequestID)
router.Use(middleware.RealIP)
router.Use(middleware.Logger)
router.Use(middleware.Recoverer)
router.Use(middleware.Timeout(60 * time.Second))

router.Get("/", func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "index.html")
})
router.Get("/node_modules/", func(w http.ResponseWriter, r *http.Request) {
http.StripPrefix("/node_modules/", http.FileServer(http.Dir("node_modules")))
})
... more routes added here for the API ...

listen = ":8080"
log.Infof("listening on %s", listen)
http.ListenAndServe(listen, router)

当我尝试做的时候

<script src="node_modules/jquery/dist/jquery.min.js"></script>

但是在我的 UI 中,我得到了 404。node_modules 目录在那里并且文件存在。我做错了什么?

最佳答案

已解决。该模式缺少通配符“/node_modules/*”。此外,出于某种原因,将 Handler 包装在 HandlerFunc 中不起作用(返回 000 状态且无内容)。所以生成的路线看起来像这样

router.Handle(
"/node_modules/*",
http.StripPrefix("/node_modules/", http.FileServer(http.Dir("node_modules"))),
)

关于http - 使用 net/http FileServer 服务文件导致 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54259384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com