首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go:使用bindata嵌入JS文件

Go:使用bindata嵌入JS文件
EN

Stack Overflow用户
提问于 2015-01-12 21:54:26
回答 3查看 1.6K关注 0票数 2

这个问题是我之前的一个问题的后续。我已经结束了这个问题,所以我希望我可以在这里问一个新的但相关的问题。Go: embed static files in binary

如何使用go-bindata服务JS文件?我要像这样把它传递到html中吗?

hi.html

代码语言:javascript
复制
<script>{{.Bindata}}></script>

即使我没有编译或JS错误,似乎也不能工作。

EN

回答 3

Stack Overflow用户

发布于 2016-04-12 21:56:21

使用https://github.com/elazarl/go-bindata-assetfs

假设您具有以下结构:

代码语言:javascript
复制
myprojectdirectory
├───api
├───cmd
├───datastores
└───ui
    ├───css
    └───js

其中ui是您想要包装并打包到应用程序中的目录结构……

生成源文件

go-bindata-assetfs工具非常简单。它将查看您传递给它的目录,并生成一个源文件,其中的变量可以包含这些文件中的二进制数据。因此,请确保您的静态文件在那里,然后从myprojectdirectory运行以下命令

go-bindata-assetfs ./ui/...

现在,默认情况下,这将在main包中创建一个源文件。有时候,这是可以的。在我的例子中,它不是。如果你愿意,你可以用不同的包名生成一个文件:

go-bindata-assetfs.exe -pkg cmd ./ui/...

将源文件放在正确的位置

在这种情况下,会在myprojectdirectory目录中创建生成的文件bindata_assetfs.go (这是错误的)。在我的示例中,我只是手动将文件移动到cmd目录。

更新您的应用程序代码

在我的应用程序中,我已经有了一些代码来服务于目录中的文件:

代码语言:javascript
复制
import (
    "net/http"
    "github.com/gorilla/mux"
)

// Create a router and setup routes
var Router = mux.NewRouter()    
Router.PathPrefix("/ui").Handler(http.StripPrefix("/ui", http.FileServer(http.Dir("./ui"))))

// Start listening
http.ListenAndServe("127.0.0.1:3000", Router)

首先,要确保这样的东西能正常工作。然后,将FileServer行更改为:

代码语言:javascript
复制
Router.PathPrefix("/ui").Handler(http.StripPrefix("/ui", http.FileServer(assetFS())))

编译应用程序

现在,您有了一个生成的源文件,其中包含静态资源。您现在可以安全地删除'ui‘子目录结构。使用编译

go install ./...

你应该有一个能为你的静态资产提供正确服务的二进制文件。

票数 2
EN

Stack Overflow用户

发布于 2015-01-12 23:48:52

使用https://github.com/elazarl/go-bindata-assetfs

从自述文件中:

代码语言:javascript
复制
go-bindata-assetfs data/...

在您的代码中设置带有文件服务器的路由

代码语言:javascript
复制
http.Handle("/", http.FileServer(assetFS()))
票数 0
EN

Stack Overflow用户

发布于 2015-01-14 09:52:03

我在这里得到了答案:Unescape css input in HTML

代码语言:javascript
复制
var safeCss = template.CSS(`body {background-image: url("paper.gif");}`)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27903565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档