Golang Web开发- Gin不使用Nginx部署Vue项目

本文介绍了如何不使用Nginx,直接将ANTD PRO VUE前端与Gin后端结合部署。首先,详细讲解了ANTD PRO VUE的下载、安装、启动和前端构建过程,特别强调了修改路由模式以避免刷新后404错误。接着,提到了可选的权限去除步骤。然后,展示了Gin后端如何接收并处理前端构建后的静态文件。最后,总结了这种部署方式的便利性。


前言

当我们应用后端用Gin框架,前端使用Vue开发,那么在最后部署上线的时候,一般是前端Vue构建的dist目录的文件部署在Nginx上,Nginx反向代理到Gin后端代码。但是这样的部署方式略微繁琐,尤其只是临时启动下应用的时候,没必要再部署一个Nginx。

下面我们将前端部署项目使用较多的 ANTD PRO VUE结合Gin 框架实现
前端构建产物和Gin打一个包部署。
启动效果:
在这里插入图片描述


一、ANTD PRO VUE 构建

Ant Design Pro 是一个企业级中后台前端/设计解决方案。尽管是基于Vue2.0的,但是应对我们一般的小项目还是满足的,而且Ant Design Pro 可以通过简单配置去除权限控制,直接打开工作台,平时开发一些小应用还是比较方便的。

下载代码

$ git clone --depth
Golang 环境中部署 Vue 前端应用,尤其是在使用 Gin 框架时,可以通过将 Vue 构建后的静态资源直接托管在 Gin 服务器上实现。这种做法避免了额外部署 Nginx 的复杂性,并且可以在一个端口下提供前后端服务[^3]。 ### 部署步骤 #### 1. 构建 Vue 应用 首先,在开发环境中构建 Vue 项目,生成 `dist` 目录: ```bash npm run build ``` 该命令会将 Vue 项目打包为静态文件,并输出到 `dist/` 文件夹中。确保你的 Vue 项目已经配置好生产环境的打包设置。 #### 2. 将 `dist` 目录放置于 Gin 项目根目录 将 `dist` 文件夹复制到与 Gin 后端程序相同的目录层级下,以便后续加载静态资源和 HTML 页面。 #### 3. 配置 Gin 路由以托管静态资源和 HTML 页面 在 Gin 中,可以使用 `.Static()` 方法来映射静态资源路径(如 `/css`, `/js`, `/img`),并通过 `.LoadHTMLGlob()` 加载 HTML 模板来渲染主页面: ```go package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() // 托管静态资源 r.Static("/css", "./dist/css") r.Static("/js", "./dist/js") r.Static("/img", "./dist/img") // 加载 HTML 模板 r.LoadHTMLGlob("dist/index.html") // 主页路由 r.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "index.html", nil) }) // 启动服务器 r.Run(":8080") } ``` 上述代码将 Vue 构建出的 `index.html` 设置为主页入口,并通过 Gin 提供对 `/`, `/css`, `/js`, `/img` 等路径的访问支持[^3]。 #### 4. 处理 Vue Router 的 History 模式问题 如果你的 Vue 项目使用了 `history` 模式的路由,当用户直接访问子路径(例如 `/about`)时,Gin 默认会处理这些请求,导致 404 错误。解决方法是添加一个通配符路由,将所有未匹配的请求重定向回 `index.html`: ```go r.NoRoute(func(c *gin.Context) { c.File("./dist/index.html") }) ``` 这样即使用户访问 `/about` 或其他 Vue 内部路径,也能正确加载前端路由并展示对应内容[^2]。 --- ### 示例结构 假设你的项目结构如下: ``` . ├── dist/ │ ├── index.html │ ├── css/ │ ├── js/ │ └── img/ ├── main.go └── go.mod ``` 运行 `main.go` 后,访问 `http://localhost:8080` 即可看到 Vue 前端页面正常显示。 --- ### 优势与适用场景 - **简化部署流程**:无需额外配置 Nginx,适合临时测试或小型项目- **统一端口**:前后端共享同一个端口,便于跨域调试和部署- **快速启动**:适用于需要快速上线的场景,尤其适合单机部署或容器化部署---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值