英文:
Package bound resource use for multiple go packages
问题
一个人为的例子:
我有两个包,repo.com/alpha/A和repo.net/beta/B。包A使用包B,两者都按照示例结构化。
A:
main.go
B:
b.go
templates \
1.tmpl
2.tmpl
在包A的main.go中,我需要访问包B的templates目录。
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),问题在于我在打包和引用它们时遇到了一些困难,无法以足够抽象的方式实现我想要做的事情。
英文:
For a contrived example:
I have 2 packages, repo.com/alpha/A & repo.net/beta/B. package A uses package B, both structured as example.
A:
main.go
B:
b.go
templates \
1.tmpl
2.tmpl
In main.go of package A, I'd need to access the templates directory of package 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)
}
So the problem being in my more complex use case & the contrived example here is that B.templates will be in the directory for package A, where I need to establish and reference the directory of the imported path. This is part of learning and navigating the Go way of doing things, and my understanding is probably basic, so I need to understand how to do this in a Go context.
My use case is a package that uses other packages that do things for the base package, and these external packages may use standard web resources files(css, html, js) the problem being I'm having immediate trouble packaging and referencing them abstractly enough for what I want to do.
答案1
得分: 1
你不能直接这样做,你要么使用类似go-bindata的工具,要么将模板作为常量嵌入到你的B
包中。
tmpl1.go:
const tmpl1 = `........`
英文:
You can't, you have to either use something like go-bindata or so, or simply embed the templates in your B
package as consts.
tmpl1.go:
const tmpl1 = `........`
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论