go - 如何访问包外的模板?

标签 go

我已经建立了一个基于 this structure 的简单网站.我运行 main.go 并且一切正常。我希望能够在另一个包中使用这个 webapp,比如“github.com/my/package”。我将“main.go”复制到“github.com/my/package”目录并运行它但随后得到:

"panic: open templates/user/view.html: no such file or directory"

修改this file, for instance,中模板文件路径的推荐方式是什么?以便我可以访问模板?我可以想到两种解决方案:

  1. 在 View 中硬编码绝对路径。转到模板文件。
  2. 在 view.go 中有一个全局变量,然后找出模板文件与新 main.go 文件相关的位置,并将该变量设置为该路径。

如果其他人尝试使用该包,第一个显然会崩溃。第二个选项有点令人费解 b/c 你需要找到 main 的路径,然后按照自己的方式进行操作并找出模板的位置......看起来非常令人费解。

有没有更好的办法?

最佳答案

你可以看看go-bindata .它将外部文件(如模板)作为二进制文件的一部分。尽管如果您希望能够在不重新编译的情况下更改模板,这不是一个很好的解决方案

关于go - 如何访问包外的模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416133/

相关文章:

go - 如何检查一个字符串在 GO 中是否有超过 n 个重复模式?

pointers - 如何为指针参数分配地址

Go - 如何子类型化包装错误类?

string - 将特定字符替换为给定单词中的适当字符

go - 使用 Golang 对 Redshift 数据库进行 CRUD 操作

go - 如何将 *int64 转换为 *int32?

go - 如何通过 golang 上现有的 ssh 连接创建 sftp 客户端

gorm 和 galera 连接

vim - 使用 syntastic 的 vim 下的 quickfix 窗口

go - 在 golang 中创建结构数组的映射?