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
1
AngryPanda 2019-08-20 15:31:49 +08:00
打包进去了,但是我估计你用的地方 PATH 也许需要改。。。
|
2
imherer OP @AngryPanda
我打包之后,先保留前端文件,运行正常。 当我把前端文件删了或者把文件夹改个名字就 404 了 |
3
ChristopherWu 2019-08-20 15:48:35 +08:00
其实为什么有把 static file 怼进去二进制文件里的需求?
|
4
AngryPanda 2019-08-20 15:53:20 +08:00
@ChristopherWu 方便部署吧
|
5
leoleoasd 2019-08-20 15:56:26 +08:00
@ChristopherWu #3 这样子的话就只需要部署一个二进制程序到服务器,不需要整个文件夹都过去了
|
6
xfriday 2019-08-20 15:58:45 +08:00
打成 docker 镜像吧
|
7
imherer OP @ChristopherWu 对的。方便部署是一方面。 假如前后端分离的项目,前端要用 nginx 代理一个,后端也要用 Nginx 代理一下, 有点费事。
@xfriday 就这一个,而且还是交给客户部署。打成 docker,还得教他们用 docker.... |
8
ChristopherWu 2019-08-20 16:13:17 +08:00
|
9
lanjz 2019-08-20 16:20:30 +08:00
如果操作没错的话应该不会有你说的删除就 404 的。
你是不是删除文件后又重新编译了一次然后再运行的?或者是直接 go run 执行? |
10
imherer OP @lanjz 没有的,我的步骤是 先 packr 然后 go build 出 binary 文件
然后运行这个 binary 文件,正常。 这时候删掉前端文件就 404 了 |
11
lanjz 2019-08-20 16:36:33 +08:00
|
12
imherer OP @lanjz 我试了下,直接 packr build 之后还是同样的问题。binary 文件大了许多,但是删掉前端文件夹后还是 404 了
我后端框架用的是 gin 代码是这样的: box := packr.NewBox("./templates") r.Any("/", gin.WrapH( http.FileServer(box))) // api router routers.Setup(r) |
13
mritd 2019-08-20 18:51:42 +08:00 via iPhone
肯定是你的相对路径配置问题,或者没有执行编译转换
|
14
imherer OP |
15
ecareyu 2020-06-10 23:12:39 +08:00
有一个外包项目,甲方有加密软件包的需求,所以需要打成一个 exe 文件,然后通过序列号打开应用。
|