打包前端WebSite到Go程序

打包前端WebSite到Go程序

Coolpy5发布在即,新版本要求服务端程序只是一个运行文件,经历了go的template无数坑后,最后还是放弃了,所以还是要把前端独立开发一个纯前端程序,但是go程序直接build的话并不支持把前端程序编译到最终生成的文件中,所以须要一种方法把前端程序打包进最终生成的运行文件中。

所用到的包 github.com/GeertJohan/go.rice

下载或编译后会得到一个rice.exe(window平台),linux平台请自行下载包并编译。

配置go env 把go 环境变量都配置好,本例中文件工程路径为:E:\Coolpy5Sub\Coolpy5Sub\bin

E:\Coolpy5Sub\Coolpy5Sub\bin>go
env

set GOARCH=amd64

set GOBIN=

set GOEXE=.exe

set GOHOSTARCH=amd64

set GOHOSTOS=windows

set GOOS=windows

set GOPATH=E:\Coolpy5Sub\Coolpy5Sub\bin

set GORACE=

set GOROOT=C:\Go

set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64

set GO15VENDOREXPERIMENT=1

set CC=gcc

set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0

set CXX=g++

set CGO_ENABLED=1

如须配置在 win平台下可以用set GOPATH=XXXXX 配置go环境参数

文件例表:

src下是go src目录,包括了自己编写的所有自定义包和第三方包,main.go是程序入口点,www文件夹是整个前端程序.

在main.go中引用rice包并把www文件夹以文件服务形式host一个服务:

code:

Import
"github.com/GeertJohan/go.rice"

http.Handle("/",
http.StripPrefix("/", http.FileServer(rice.MustFindBox("www").HTTPBox())))

http.ListenAndServe(":8000", nil)

以上代码需要注意www所指向的文件夹名会直接被转义为相对路径,http.Handle("/",
即说明通过请求http://127.0.0.1:8000 即可访问,如果外网请转用外网相对地址。

前期准备已完成:

1.cmd 进行工程目前 并执行 rice embed-go 指令,注意rice.exe必须也在同一目录下

执行完后会在当前目录产生一个rice-box.go文件,这是一个很重要的文件,它是自动成生了一个go文件,把www文件夹下的所有文件都配置为静态资源,因此当我们再这里执行build指令时,这个rice-box.go直接被编译到最终生成的文件中。

接下来执行 go build main.go 指令

执行后就是最终的运行程序了

main.exe即是最终编译成的运行文件,此文件已经是一个独立文件,而且把前端程序也打包进去了。

开源跨平台高性能物联网平台酷痞物联:http://icoolpy.com

时间: 2024-08-02 19:48:30

打包前端WebSite到Go程序的相关文章

【转载】【grunt整合版】30分钟学会使用grunt打包前端代码

[grunt整合版]30分钟学会使用grunt打包前端代码 grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学,有误请包涵 准备阶段 1.nodeJs环境 因为grunt是基于nodeJs的,所以首先各位需要安装nodeJS环境,这块我们便不管了http://www.cnblogs.com/yexiaochai/p/3527418.html 2.安装

程序包管理的前端工具yum、程序包管理器编译安装、sed命令

下面介绍的是程序包管理的前端工具yum.程序包管理器编译安装.sed命令. 一.Linux程序包管理:程序包管理的[前端工具] 1.yum软件包仓库简介 CentOS系的管理工具有yum和dnf.yum是一款发行版的Linux,其使用的默认程序包管理工具为rpm. URL是yum定位软件包仓库和仓库中程序文件的主要标识方式,表示如下: 例如:schema://[[email protected]]hostname/PATH/TO/DOCUMENT[paramers][methord] (例子中的

(转)使用 Advanced Installer 打包 一键安装Web应用程序

使用 Advanced Installer 打包 一键安装Web应用程序 安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置应用程序名称和公司名称. 3.选择安装包分布类型.默认即可. 4.指定该项目和程序包的路径. 5.新建应用程序文件.点击新建文件和新建文件夹即可选择站点下的文件或文件夹. 6.配置应用程序运行时环境. 7.配置程序包的.Net Framework环境. 8.定义Web应用程序类型. 9.设置主机.端口等参数. 10.选

Linux安装npm并打包前端代码

查看node版本$ node -v查看npm版本$ npm -v如果没有安装node及npm,需要先安装node及npm#yum install node# yum install npm安装cnpm并切换淘宝镜像(使用国外镜像速度慢)$ npm install -g cnpm --registry=https://registry.npm.taobao.org查看cnpm信息$ cnpm i使用npm打包前端vue代码$ npm run build运行dev$ npm run dev 原文地址

使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 网上的 MapReduce WordCount 教程对于如何编译 WordCount.java 几乎是一笔带过… 而有写到的,大多又是 0.20 等旧版本版本的做法,即 javac -classpath /usr/local/hadoop/hadoop-1.0.1/hadoop-core-1.0.1.jar WordCount.java,但较新的 2.X 版本中,已经没有 hadoop-core*.jar 这个文件,因此

使用 MSIX 打包 DotNetCore 3.0 客户端程序

原文:使用 MSIX 打包 DotNetCore 3.0 客户端程序 如何你希望你的 WPF 程序能够以 Windows 的保护机制保护起来,不被轻易反编译的话,那么这篇文章应该能帮到你. 介绍 MSIX 是微软于去年的 Windows 开发者日峰会 上推出的全新应用打包解决方案.其目的是取代旧式的软件打包方式,可用于 Win32.WindowsForm . WPF 和 UWP 等应用程序,该打包方式将支持 Windows7 和 Windows8.x.并且让我们的程序不会轻易反编译. 本文,我们

electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe)

我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(二): http服务器, ws服务器, 子进程管理 electron教程(三): 使用ffi-napi引入C++的dll electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe) ? 引言 本篇将介绍如何将你开发的electron项目(main.js), 打包成一个可执行桌面程序(.exe). 有

Java已五年1—二本物理到前端实习生到Java程序员「回忆贴」

关键词:郑州 二本 物理专业 先前端实习生 后Java程序员 更多文章收录在码云仓库:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 没有正式复工,就一直在老家待着,已经很长时间没有在三月份时候待在老家了,好久好久,从08年去县城上高中开始,在外多,在家少,一直没有机会好好停下来看看家乡. 坐的时间越长,回忆越多,想的越多,就想要整理一下这些年的经历,尤其是从事Java至今,算是一种回忆,也算是一种复盘. 分享给朋友们一张杨花. 大学

【grunt整合版】30分钟学会使用grunt打包前端代码

grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学,有误请包涵 准备阶段 1.nodeJs环境 因为grunt是基于nodeJs的,所以首先各位需要安装nodeJS环境,这块我们便不管了http://www.cnblogs.com/yexiaochai/p/3527418.html 2.安装grunt 有了nodeJs环境后,我们便可以开始搞grun