宝塔面板部署Vue+Gin项目(吐血整理,各种踩坑)

作者分享了将Vue和Go(gin)项目部署到服务器的过程,初期尝试分离部署遇到困难,最终通过合并部署并利用Nginx作为反向代理解决了问题。寻求前端与后端分离部署和Nginx配置建议。
摘要由CSDN通过智能技术生成

前言        

        最近做了一个Vue+gin的小项目,自己写的,纯纯是为了练习自己的gin框架,顺带着入门前端的Vue开发(发现还真是好用啊!属于是用完真香)

        然后做完后,就想着部署在自己的服务器上,本着人有我用的原则,直接一通找,发现几乎很少有部署VUE+Go的项目,基本上要不就是Vue或者单独的go项目,或者就是Vue+java。于是自己也是陷入了摸索的境界。

前期部署(各种试错)

       分开部署(几乎崩溃)

         一开始,自己想着先看go项目(后面我也用gin框架代指这个项目)部署,因为关于宝塔部署go项目还是有,好!然后自己花了一点时间,部署了gin框架在linux服务器8081端口上。然后再部署Vue项目,这里因为是小白,基本上也是参考的项目,然后自己想着再去找nginx反向代理,基本上通信上的问题就finish,但是不知道为啥一直实现不了,前端页面可以加载,但是一直不能调用后端的gin框架进行服务。这个地方折腾了3个小时(包括重新部署和重新安装nginx),反正就是不成功。。。(如果有大佬看到了这个帖子,呜呜呜希望给我一点指导)

        注:有用docker容器部署的教程,但是因为自己想原生态部署,不太想用容器,所以没尝试,后面有时间再用docker部署一下,看看是否更好。(希望不是一个接一个踩坑)

        合并部署(成功曙光)

        后面思路打开了,想着分开部署不行,我就选择合并部署。因为自己之前和别人合作过一个项目,他当时就是打包的react。于是我把前端的Vue项目打包。

npm run build

打包后,在vscode中出现下面的dist文件夹,那么就说明打包成功!

然后我们将这个dist文件夹放置在gin的文件夹下。如下图所示。

然后在router文件夹下的router.go也就是gin框架下的路由层下我们引入前端加载的代码。后面的后端服务的api接口一类的,我就省略啦。

	r := gin.Default()

	//加载静态资源

	r.Use(static.Serve("/", static.LocalFile("dist", true)))
	r.NoRoute(func(c *gin.Context) {
		accept := c.Request.Header.Get("Accept")
		flag := strings.Contains(accept, "text/html")
		if flag {
			content, err := ioutil.ReadFile("dist/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()
		}
	})

然后本地调试,运行成功。但是这是在windows环境下运行的。我们需要在linux环境下,我们打开命令行,输入一下代码,生成在linux运行的main文件。

set GOOS=linux
go build -o main
set GOOS=windows

然后我们便把资源加载到宝塔面板上去。宝塔可以直接上传文件,不需要第三方工具。我们上传config因为这个里面有app.yml配置文件,asset我放置图片的地方,dist就是Vue打包后的文件,最后就是main。全部在同一个文件夹下。

然后点击宝塔左边的网站,点击go项目,然后点击添加go项目,就会出现下图的信息。

这一些信息我们就按实际填写就是,执行文件就是你放置的main。名称自己看,端口写你实际端口就行,还需要记得放行!然后点击提交就行。对,就这么简单,真就这样,然后就可以访问了。

后话

        这是自己第一次部署go的项目,学了一段时间了,几乎都是在本地跑。第一次运行上服务器。哈哈哈哈虽然经历了挫折,但是还是比较成功的。

        想看看评论区有没有大神指导我前后端分开部署,还有nginx为啥一直反向代理不到,呜呜呜。

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值