【发布时间】:2014-11-19 05:42:51
【问题描述】:
我已经按照 Go 网站上的 Writing Web Applications 教程进行操作,并且开始编写自己的网络应用程序。我还阅读了How to Write Go Code 的开头并尝试使用相同的工作区结构来组织我的代码。
我正在编写一个名为 mygosite 的简单网络应用程序,它通过呈现单个模板来处理所有请求。运行go install github.com/wesleym/mygosite 后,我的目录结构现在如下所示:
go
+-src
| +-github.com
| +-wesleym
| +-mygosite
| +-mygosite.go
| +-templates
| +- index.html
| +-.git
+-bin
+-mygosite
在我的代码中,我指的是路径为templates/index.html 的模板。当我运行bin/mygosite 时,应用程序找不到我的模板,因为它在源代码树中。由于模板对我的应用很重要,因此我不想将它们移出我的 mygosite git 存储库。
考虑到我正在尝试做的事情,我的目录布局是否合理?我是否应该将代码中模板的路径更改为src/github.com/wesleym/mygosite/templates/index.html?像 CSS 和 JavaScript 这样的静态资产呢?到了引入它们的时候,它们应该放在哪里?
tl;dr:在 Go Web 应用程序项目中,我应该将模板和静态文件放在哪里?
【问题讨论】:
-
2021 年 1 月更新:Go 1.16 将附带嵌入文件:请参阅 my updated answer below。
标签: templates web-applications go directory-structure