🎨 优化dockerfile,优化路由匹配
This commit is contained in:
13
Dockerfile
13
Dockerfile
@@ -17,7 +17,13 @@ COPY web/ ./
|
|||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# 阶段2: 构建后端
|
# 阶段2: 构建后端
|
||||||
FROM golang:1.21-alpine as backend-builder
|
FROM golang:1.23-alpine as backend-builder
|
||||||
|
|
||||||
|
# 设置环境变量允许 Go 自动下载工具链
|
||||||
|
ENV GO111MODULE=on \
|
||||||
|
GOPROXY=https://goproxy.cn,direct \
|
||||||
|
CGO_ENABLED=0 \
|
||||||
|
GOTOOLCHAIN=auto
|
||||||
|
|
||||||
WORKDIR /app/server
|
WORKDIR /app/server
|
||||||
|
|
||||||
@@ -25,10 +31,7 @@ WORKDIR /app/server
|
|||||||
COPY server/go.mod server/go.sum ./
|
COPY server/go.mod server/go.sum ./
|
||||||
|
|
||||||
# 下载依赖
|
# 下载依赖
|
||||||
RUN go env -w GO111MODULE=on \
|
RUN go mod download
|
||||||
&& go env -w GOPROXY=https://goproxy.cn,direct \
|
|
||||||
&& go env -w CGO_ENABLED=0 \
|
|
||||||
&& go mod download
|
|
||||||
|
|
||||||
# 复制后端源码
|
# 复制后端源码
|
||||||
COPY server/ ./
|
COPY server/ ./
|
||||||
|
|||||||
@@ -143,14 +143,21 @@ func setupFrontendRoutes(router *gin.Engine) {
|
|||||||
// SPA 路由处理:所有非 API 请求都返回 index.html
|
// SPA 路由处理:所有非 API 请求都返回 index.html
|
||||||
router.NoRoute(func(c *gin.Context) {
|
router.NoRoute(func(c *gin.Context) {
|
||||||
path := c.Request.URL.Path
|
path := c.Request.URL.Path
|
||||||
// 如果是 API 请求,返回 404
|
|
||||||
if strings.HasPrefix(path, global.GVA_CONFIG.System.RouterPrefix) {
|
// 如果是 API 请求(/api/* 或 /v1/*),返回 404
|
||||||
|
routerPrefix := global.GVA_CONFIG.System.RouterPrefix
|
||||||
|
if routerPrefix == "" {
|
||||||
|
routerPrefix = "/api"
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(path, routerPrefix) || strings.HasPrefix(path, "/v1") {
|
||||||
c.JSON(http.StatusNotFound, gin.H{
|
c.JSON(http.StatusNotFound, gin.H{
|
||||||
"code": 404,
|
"code": 404,
|
||||||
"msg": "接口不存在",
|
"msg": "接口不存在",
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其他请求返回前端页面
|
// 其他请求返回前端页面
|
||||||
c.File("./dist/index.html")
|
c.File("./dist/index.html")
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user