猿问

如何访问包外的模板?

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

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

例如,修改此文件中模板文件的路径的推荐方法是什么以便我可以访问模板?我可以想到两种解决方案:

  1. 在 view.go 中硬编码一个绝对路径到模板文件。

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

如果其他人尝试使用该软件包,第一个显然会中断。第二个选项有点复杂,你需要找到通往 main 的路径,然后通过你的方式找出模板在哪里......似乎非常复杂。

有没有更好的办法?


一只名叫tom的猫
浏览 182回答 2
2回答

侃侃尔雅

你可以看看go-bindata。它使外部文件(如模板)成为二进制文件的一部分。虽然如果您希望能够在不重新编译的情况下更改模板,这不是一个很好的解决方案
随时随地看视频慕课网APP

相关分类

Go
我要回答