问题描述
vue router选择history模式打包上传服务器后可以正常打开但是刷新浏览器就会出现404!
nginx 配置处理 直接添加就好
# vue hitory 404
location / {
# index index.html //如果你的代码严格遵循文件夹下的默认文件是index.html,此选项可不写
try_files $uri $uri/ /index.html;
}
golang gin项目的处理
// 找不到就会 404 重新将index.html的内容写入进去
func NotFoundHandler(r *gin.Engine) {
r.StaticFS("/static", http.Dir("public/static"))
r.Use(static.Serve("", static.LocalFile("public/index.html", true)))
r.NoRoute(func(c *gin.Context) {
accept := c.Request.Header.Get("Accept")
flag := strings.Contains(accept, "text/html")
if flag {
content, err := os.ReadFile("public/index.html")
if (err) != nil {
c.Writer.WriteHeader(404)
c.Writer.WriteString("Not Found")
return
}
c.Writer.WriteHeader(200)
c.Writer.Header().Add("Accept", "text/html")
c.Writer.Write((content))
c.Writer.Flush()
}
})
}
2024/2/28 🌧