本文详解 go 中 http.fileserver 静态文件服务的常见路径配置错误,重点解决因目录结构与路由映射不匹配导致的 js/css/html 文件 404 问题,并提供可直接运行的修复示例。
在 Go Web 开发中,使用 http.FileServer 托管静态资源(如 JavaScript、CSS、HTML 模板)是基础但易出错的操作。你遇到的 {error serving JS files} 本质是文件系统路径与 HTTP 路由路径未对齐——即 http.Dir() 指向的物理路径,与 http.Handle() 注册的 URL 前缀之间存在逻辑断层。
? 根本原因分析
你的项目结构为:
src/
github.com/
john/
site/
main.go
templates/
index.html
static/
js/
site.js
css/
而代码中这样注册静态服务:
http.Handle("/static/", http.StripPrefix("/static/",
http.FileServer(http.Dir(filepath.Join(cwd, "/github.com/john/site/static/"))))
⚠️ 关键问题在于:
立即学习“前端免费学习笔记(深入)”;