用于多个go包的包绑定资源使用

时间:2014-08-07 13:19:20

标签: go resources package

对于一个人为的例子:

我有两个包,repo.com / apha / A& repo.net/beta/B。包A使用包B,两者都是结构化的。

A:
    main.go

B: 
    b.go
    templates \
        1.tmpl
        2.tmpl

在包A的main.go中,我需要访问包B的模板目录。

b.go

var templates string

templates = templatepath

func init(){
    templatepath, _ = filepath.Abs("./templates")
}

main.go

import(
    repo.net/beta/B
)

func main(){
   fmt.Printf("%s", B.templates)
}

所以问题出现在我更复杂的用例中。这里人为的例子是B.templates将在包A的目录中,我需要建立和引用导入路径的目录。这是学习和导航Go方式的一部分,我的理解可能是基本的,所以我需要了解如何在Go上下文中执行此操作。

我的用例是一个包使用其他包为基础包执行操作的包,这些外部包可能使用标准的Web资源文件(css,html,js)问题是我在打包和引用时遇到麻烦它们抽象地足以满足我的目的。

1 个答案:

答案 0 :(得分:1)

你不能,你必须使用像go-bindata这样的东西,或者只是将模板作为consts嵌入你的B包中。

<强> tmpl1.go

const tmpl1 = `........`