Go Gin框架静态文件返回404:本地正常服务器端异常
Gin静态文件部署后返回404的解决办法
问题根源在于你用了相对路径./static,本地运行时程序的工作目录和静态文件夹位置匹配,但服务器部署时,程序的工作目录大概率不是你预期的路径,导致找不到文件夹返回404。
给你几个靠谱的解决办法:
改用绝对路径定位静态文件夹
用Go标准库获取程序的执行目录,再拼接静态文件夹路径,这样不管程序在哪运行都能精准找到文件。示例代码:package main import ( "net/http" "os" "path/filepath" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() // 获取当前可执行文件的目录 exePath, err := os.Executable() if err != nil { panic(err) } exeDir := filepath.Dir(exePath) // 拼接静态文件夹的绝对路径 staticDir := filepath.Join(exeDir, "static") r.StaticFS("/uploads", http.Dir(staticDir)) r.Run(":8080") }检查服务器文件夹权限
确保服务器上的static文件夹存在,而且运行Go程序的用户有读取权限——权限不够也会导致404。核对部署文件结构
确认部署时static文件夹和Go可执行文件在同一目录下,或者根据你设置的绝对路径调整文件夹位置。
内容的提问来源于stack exchange,提问作者Juras Prastya Budi Utomo
相关产品推荐
相关产品推荐

