有用过 golang 的 packr 这个包吗?请教几个问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
imherer
V2EX    Go 编程语言

有用过 golang 的 packr 这个包吗?请教几个问题

  •  
  •   imherer 2019-08-20 15:28:31 +08:00 3476 次点击
    这是一个创建于 2326 天前的主题,其中的信息可能已经有所发展或是发生改变。

    github 链接:github.com/gobuffalo/packr/tree/master/v2

    我想用它把前端文件打包的 go 的 binary 文件里

    参照官方文档的步骤,打包成功了,binary 也变大了许多,从文件大小上看应该是把前端文件给打进去了,但是我把前端文件删掉之后,访问就 404 了

    难道还得保留前端文件吗?那这样的话打包还有什么意义呢?

    Usage with HTTP:github.com/gobuffalo/packr/tree/master/v2#usage-with-http

    15 条回复    2020-06-10 23:12:39 +08:00
    AngryPanda
        1
    AngryPanda  
       2019-08-20 15:31:49 +08:00
    打包进去了,但是我估计你用的地方 PATH 也许需要改。。。
    imherer
        2
    imherer  
    OP
       2019-08-20 15:47:50 +08:00
    @AngryPanda
    我打包之后,先保留前端文件,运行正常。 当我把前端文件删了或者把文件夹改个名字就 404 了
    ChristopherWu
        3
    ChristopherWu  
       2019-08-20 15:48:35 +08:00
    其实为什么有把 static file 怼进去二进制文件里的需求?
    AngryPanda
        4
    AngryPanda  
       2019-08-20 15:53:20 +08:00
    @ChristopherWu 方便部署吧
    leoleoasd
        5
    leoleoasd  
       2019-08-20 15:56:26 +08:00
    @ChristopherWu #3 这样子的话就只需要部署一个二进制程序到服务器,不需要整个文件夹都过去了
    xfriday
        6
    xfriday  
       2019-08-20 15:58:45 +08:00
    打成 docker 镜像吧
    imherer
        7
    imherer  
    OP
       2019-08-20 16:08:23 +08:00
    @ChristopherWu 对的。方便部署是一方面。 假如前后端分离的项目,前端要用 nginx 代理一个,后端也要用 Nginx 代理一下, 有点费事。


    @xfriday 就这一个,而且还是交给客户部署。打成 docker,还得教他们用 docker....
    ChristopherWu
        8
    ChristopherWu  
       2019-08-20 16:13:17 +08:00
    @imherer
    @AngryPanda

    那这样子你也可以把图片也跟 binary 一起给过去呀。文件夹跟文件,没什么区别啊。
    lanjz
        9
    lanjz  
       2019-08-20 16:20:30 +08:00
    如果操作没错的话应该不会有你说的删除就 404 的。

    你是不是删除文件后又重新编译了一次然后再运行的?或者是直接 go run 执行?
    imherer
        10
    imherer  
    OP
       2019-08-20 16:30:10 +08:00
    @lanjz 没有的,我的步骤是 先 packr 然后 go build 出 binary 文件
    然后运行这个 binary 文件,正常。 这时候删掉前端文件就 404 了
    lanjz
        11
    lanjz  
       2019-08-20 16:36:33 +08:00
    @imherer #10 直接 packr build 不用再 go build 了

    等于说你直接把 packr 命令用来替换掉原来的 go 命令,参数不变
    imherer
        12
    imherer  
    OP
       2019-08-20 16:48:23 +08:00
    @lanjz 我试了下,直接 packr build 之后还是同样的问题。binary 文件大了许多,但是删掉前端文件夹后还是 404 了

    我后端框架用的是 gin
    代码是这样的:
    box := packr.NewBox("./templates")
    r.Any("/", gin.WrapH( http.FileServer(box)))
    // api router
    routers.Setup(r)
    mritd
        13
    mritd  
       2019-08-20 18:51:42 +08:00 via iPhone
    肯定是你的相对路径配置问题,或者没有执行编译转换
    imherer
        14
    imherer  
    OP
       2019-08-20 19:14:43 +08:00
    @mritd 问题解决了

    之前没仔细看用的是 v1 的版本,换成 v2 后就可以了。 不过 v2 有个 bug 是:too many redirects。 该了修改了源代码里一个地方,目前正常了
    ecareyu
        15
    ecareyu  
       2020-06-10 23:12:39 +08:00
    有一个外包项目,甲方有加密软件包的需求,所以需要打成一个 exe 文件,然后通过序列号打开应用。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     807 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:30 PVG 04:30 LAX 12:30 JFK 15:30
    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