Golang Go语言中 go build windows 不带资源目录

Golang Go语言中 go build windows 不带资源目录
求解

6 回复

就是打出来的 exe 可以带资源目录

更多关于Golang Go语言中 go build windows 不带资源目录的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


资源目录本来就不会打包进去,这种需求看看 go-bindata 类似的项目

按照 说的,使用 go-bindata 来做吧,非常好用,https://github.com/sunshinev/go-sword 我的这个项目就是使用了 go-bindata 来进行了静态资源打包

go 是编译行语言,在 build 的时候,只会将相关用到的资源打包。但是很多资源是启动 http 服务之后,通过请求来解析的本地静态资源。比如 css 、js 、html 模板等,这些会根据路由来匹配不同的文件。所以需要进行 go-bindata 打包成 go 文件

在Go语言中,使用go build命令编译Windows应用时,如果希望包含资源文件(如图片、配置文件等),通常这些资源不会直接通过go build命令打包进可执行文件。Go语言本身没有直接支持将资源目录打包进可执行文件的机制,但你可以采取以下几种方法来实现这一需求:

  1. 使用嵌入文件:Go 1.16及以后版本支持文件嵌入,你可以使用embed包将资源文件嵌入到Go程序中。这样,资源文件在编译时会被转换成Go代码的一部分,并可以在运行时通过代码访问。

  2. 手动打包资源:将资源文件打包成一个单独的归档文件(如zip),然后在程序中解压并使用这些资源。这种方法需要在程序启动时处理归档文件的解压,并管理解压后的文件路径。

  3. 外部资源目录:将资源文件放在一个外部目录中,程序运行时从这个目录加载资源。这种方法简单直接,但要求资源目录与可执行文件一同部署。

  4. 第三方工具:使用第三方工具(如go-bindata)将资源文件转换为Go代码,并在编译时包含这些代码。这种方法类似于使用embed包,但提供了更多的自定义选项和兼容性。

选择哪种方法取决于你的具体需求,如资源文件的大小、数量以及是否需要跨平台兼容性等。如果资源文件较小且数量不多,使用embed包通常是最简单直接的方法。

回到顶部