在 AppEngine 应用程序中构建 Go 模板以进行层次结构、编辑和重新加载
本文深入研究了基于 Go 的 AppEngine 中模板的结构应用程序、寻址层次结构、易于编辑和自动模板正在重新加载。
层次结构
要为模板创建层次结构,建议将模板存储在包的根目录中的专用模板子目录下。这允许有组织的组织并简化 template.ParseFiles() 的遍历。
易于编辑
在 .go 文件中嵌入模板文本可能会妨碍使用 HTML 工具进行编辑。要解决此问题,请将模板作为原始文本文件存储在 templates 子目录中。虽然出于性能考虑,建议不要直接上传模板,但还有其他方法。
自动重新加载
开发服务器上的自动模板重新加载可以通过定义来实现包级模板变量。此变量在包初始化期间填充,并在任何模板更改时更新。
示例项目结构
考虑以下项目结构:
|-- app.yaml |-- app | +-- http.go |-- templates | +-- base.html +-- github.com +-- storeski +-- appengine |-- products | +-- http.go | +-- templates | |-- list.html | |-- detail.html +-- account |-- http.go +-- templates |-- overview.html |-- notifications.html
具有包所有权的模块化方法
推荐的方法涉及使用包来处理特定的 URL 前缀。每个包都拥有一个专用的模板子目录,其中包含其模板。这种模块化允许特定于包功能的模板处理。
扩展基本模板
为了保持一致性,请建立其他模板可以扩展的基本模板。例如,您可以定义 templates/base.html 模板,并使用扩展模板函数让其他模板继承自该模板。
代码示例
这里是一个示例定义基本模板并解析其中的附加模板处理程序:
templates/base.html
<!DOCTYPE HTML> <html> <head>
以上是如何在 App Engine 中有效构建 Go 模板以实现层次结构、轻松编辑和自动重新加载?的详细内容。更多信息请关注PHP中文网其他相关文章!