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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:05:25