vue-history路由刷新404

120 阅读1分钟

问题描述

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 🌧