使用Go构建项目后,访问页面出现404错误是常见的部署问题。本文将针对Go项目中使用go build
命令后出现404错误的情况,提供详细的排查步骤和解决方案。
开发者使用go build
命令构建Java项目(使用supervisord作为守护进程),构建命令为:
go build -o test .
构建成功,但访问页面时返回404错误。怀疑原因是静态文件(如HTML、CSS、JavaScript)未被正确构建。
Go项目静态文件的处理通常通过内嵌方式实现。以下列出可能的原因及解决方法:
静态文件未正确内嵌: Go 1.16及以上版本支持//go:embed
指令内嵌静态文件。如果项目依赖静态文件,需确保它们已正确内嵌。使用embed
包:
import ( "embed" "net/http" ) //go:embed static/* var staticfs embed.FS func main() { http.Handle("/", http.FileServer(http.FS(staticfs))) http.ListenAndServe(":8080", nil) }
确保go.mod
文件中包含embed
模块(可能已包含,无需额外添加)。
路径错误: 检查服务器上的静态文件路径是否正确。404错误可能源于路径配置错误。仔细核对路由配置,确保访问路径与静态文件路径一致。
服务器配置问题: 检查服务器配置,特别是supervisord配置。确保Go程序正确启动并监听正确端口。
权限问题: 确保Go程序拥有访问静态文件的权限。检查文件和目录的权限设置。
通过以上步骤,系统地排查问题,即可找到go build
后页面404错误的根本原因。希望本文能帮助您顺利部署Go项目。