不使用 nginx, vue.js 如何和 gin 组合后部署到服务器上面? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
jizhihaoSAMA
V2EX    Go 编程语言

不使 nginx, vue.js 如何和 gin 组合后部署到服务器上面?

  •  
  •   jizhihaoSAMA 2020-08-27 11:01:00 +08:00 4465 次点击
    这是一个创建于 1939 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己尝试着做一个前后端分离的小项目,前端 vuejs 后端 gin, 我之前一直以为前后端路由在服务器上面都开着然后进行访问。最近试了下 vue.js 的部署,发现 vuejs 直接打包过去不行,网上说是要 npm run build 打包成静态网页。 网上搜了一下,知乎上面有这个问题: https://www.zhihu.com/question/46630687

    相关的是说要用 nginx 。

    有没有不用 nginx 的方法?

    11 条回复    2020-09-09 20:34:26 +08:00
    rrfeng
        1
    rrfeng  
       2020-08-27 11:06:10 +08:00   1
    gin.ServeStatic() 之类的
    yaphets666
        2
    yaphets666  
       2020-08-27 11:10:36 +08:00
    nginx 主要解决跨域问题和负载均衡.你这不存在负载均衡.但是你不用 nginx 怎么解决跨域问题呢? 不解决跨域问题当然不行啊 接口都访问不了. 还有你 vue 项目中的静态文件的引用路径 这都是问题
    XCFOX
        3
    XCFOX  
       2020-08-27 11:15:30 +08:00   1
    你还可以用 caddy https://caddyserver.com/
    比 nginx 方便很多,还能自动 https
    jizhihaoSAMA
        4
    jizhihaoSAMA  
    OP
       2020-08-27 11:16:11 +08:00
    @yaphets666 跨域问题通过 gin 已经解决了。我在本地上 前端路由跑 8080 端口,后端跑 8081 端口,设置好跨域问题后是能够正常进行交互的
    maichael
        5
    maichael  
       2020-08-27 11:17:44 +08:00
    ……,静态文件要解决啥跨域问题,你后端路由直接指向静态文件不就好了?后端的接口就前缀加 api 之类的。
    saltbo
        6
    saltbo  
       2020-0827 16:44:17 +08:00   1
    这个最佳实践是开发环境在 vue.config.js 配置 web-dev-server 来代理后端接口。 生产环境通过 gin 来挂载静态文件。当然,更好的方式是直接嵌入到 go 源码中。可以参考我正在做的开源项目 zpan

    https://github.com/saltbo/zpan
    https://github.com/saltbo/zpan-front

    master 比较老了,develop 分支正在重构中...
    MrTreasure
        7
    MrTreasure  
       2020-08-27 17:42:10 +08:00   1
    服务端的接口统一挂到路由 /api 下面

    gin 开启一个静态服务地址,把除了 /api 接口的请求都重定向到这里,静态服务里面就放 vue 打包后的产物。以后前端更新就跑脚本直接替换就行了。
    这样做的好处就是没有跨域问题了
    lavvrence
        8
    lavvrence  
       2020-08-27 18:00:57 +08:00   1
    本质上还是需要一个 HTTP 服务器嘛。不用 Nginx 很方便,还是推荐使用。跨域问题放 gin 下托管到 /api 没问题,但其实更好的解决方案是浏览器 cors 吧。前后端都分离了,没必要放一起。
    JerryCha
        9
    JerryCha  
       2020-08-27 22:05:30 +08:00
    那就在 server 跑 dev 模式(逃
    jizhihaoSAMA
        10
    jizhihaoSAMA  
    OP
       2020-08-29 11:53:36 +08:00
    @JerryCha 有轮子哥那味了
    stone981023
        11
    stone981023  
       2020-09-09 20:34:26 +08:00
    @yaphets666 你在同一个 URL 下不会有跨域问题的, 都是 Gin 分配的路由 ,协议, url 端口号 都一样的
    关于     帮助文档     自助推广系统     博客     API     FAQ &nbs;   Solana     4479 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 79ms UTC 05:36 PVG 13:36 LAX 21:36 JFK 00:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86