go语言嵌入静态文件打包总结

go语言给我提供了一个很好的方式 可以让静态文件直接打包进exe

先说下大概情况 我的项目是前后分离的 前端是vue写的 后端golang写的。 我想要最终的实现效果就是把静态文件也嵌入到golang打包的exe里面

 

开发环境

本地开发的时候 我启动的golang和前端dev的服务器 不是一个端口  这个会出现跨域问题。这个问题开启跨域就可以解决

export const config = {
  // API 基础路径
  // 开发环境 (Dev) 必须设置为 '/api',这样请求才会以 /api 开头(例如 /api/ms-imap),
  // 从而匹配 vite.config.js 中的 proxy: { '/api': ... } 规则。
  // 如果设置为 '/',请求就是 /ms-imap,不匹配 '/api' 前缀,所以不会走代理。
  API_BASE_URL: import.meta.env.DEV 
    ? '/' 
    : `/`
};

我这么把请求的基础url 设置 / 这样的话 请求接口的比如 api/test 他还是用的前端的域名 这个时候访问肯定会失败的 所以这个时候我用了前端代理proxy功能 

export default defineConfig({
  plugins: [vue()],
  server: {
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:5566',
        changeOrigin: true,
        // rewrite: (path) => path.replace(/^\/api/, ''),
      }
    }
  }
})

这样的化 请求中包含api的时候 会自动 代理到5566端口 这样的化 就能成功访问到后台的接口了。而且开发体验和打包体验很一致

 

现在就可以打包前端代码了 而且没有任何依赖~ 不需要写死后端接口的域名~当然我这个有个前提 是为了把前端代码嵌入到go打包的exe 所以前后端域名肯定是一个的

    <script type="module" crossorigin src="/assets/index-8fbe0nLu.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-CT8d6YAU.css">

这个因为是要丢到go里面 所以这个路径要改成适合go的路径~

 

//后端部分基本不太需要改什么 后端直接打包就可以上线了

 

//线上需要一个域名 nginx服务器 如果需要go一直跑 可以搞一个pm2 进程管理 。。nginx反响代理到程序端口 这样基本就完事了.

 

//后续补充

那个路径也问题也解决了,vite 里面有个配置 只要设置base的路径就可以了

 

 

 

posted @ 2025-12-13 16:21  天梯小蔡  阅读(9)  评论(0)    收藏  举报