首頁 >後端開發 >Golang >如何在 Go App Engine 中實作自動重新載入的分層範本?

如何在 Go App Engine 中實作自動重新載入的分層範本?

Linda Hamilton
Linda Hamilton原創
2024-12-03 07:02:13224瀏覽

How to Implement Hierarchical Templates with Automatic Reloading in Go App Engine?

Go AppEngine:具有自動重新載入功能的分層範本

問題:

問題:
  • 問題:
問題:

問題:
  • 問題:

問題:

問題:

問我如何建構Go AppEngine應用程式中的範本實作:
|-- 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 

分層組織

與 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)
    }
  }
}

潛力挑戰:Template.ParseGlob()不會遞歸出於性能原因,不鼓勵上傳原始文本模板解決方案:組織你的Go AppEngine具有模組化結構的項目,其中每個包都擁有一個URL 前綴並包含自己的模板。這種方法允許您維護一致的基本模板並在每個包中擴展它。 範例專案結構:在每個套件的 http.go 檔案中,為其擁有的 URL 註冊處理程序。例如,產品包將處理以 /products 開頭的 URL。 在每個套件中,將模板儲存在「templates」子目錄中,並建立​​一個基本模板(例如 templates/base.html),以便其他模板可以擴充。 要在開發伺服器上啟用自動模板重新加載,請實現自訂函數來監視模板中的更改目錄:在主包中,調用watchTemplates() 定期檢查模板更改並重新載入它們。這可確保範本的更新自動反映在您的應用程式中。

以上是如何在 Go App Engine 中實作自動重新載入的分層範本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn