Go AppEngine:具有自动重新加载功能的分层模板
问题:
我如何构建Go AppEngine 应用程序中的模板实现:
潜力挑战:
解决方案:
组织你的 Go AppEngine具有模块化结构的项目,其中每个包都拥有一个 URL 前缀并包含自己的模板。这种方法允许您维护一致的基本模板并在每个包中扩展它。
示例项目结构:
|-- 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
在每个包的 http.go 文件中,为其拥有的 URL 注册处理程序。例如,产品包将处理以 /products 开头的 URL。
在每个包中,将模板存储在“templates”子目录中,并创建一个基本模板(例如 templates/base.html),以便其他模板使用可以扩展。
要在开发服务器上启用自动模板重新加载,请实现自定义函数来监视模板中的更改目录:
func watchTemplates() { ticker := time.NewTicker(1 * time.Second) for range ticker.C { if err := parseTemplates(); err != nil { log.Printf("Error parsing templates: %v", err) } } }
在主包中,调用 watchTemplates() 定期检查模板更改并重新加载它们。这可确保模板的更新自动反映在您的应用程序中。
以上是如何在 Go App Engine 中实现自动重新加载的分层模板?的详细内容。更多信息请关注PHP中文网其他相关文章!