ホームページ >バックエンド開発 >Golang >基本テンプレートは Golang HTML/テンプレートでどのように機能しますか?

基本テンプレートは Golang HTML/テンプレートでどのように機能しますか?

DDD
DDDオリジナル
2024-11-08 11:00:02464ブラウズ

How do Base Templates Work in Golang HTML/Template?

Golang HTML/テンプレートでのベース テンプレートの利用

指定されたシナリオでは、ベース テンプレートの使用法に関する誤解に直面しています。問題は、ページ 1 とページ 2 が実際には同じ基本テンプレートを参照し、一意のコンテンツ セクションを定義しているにもかかわらず、同じテンプレートを使用していると信じていることにあります。

基本テンプレートの正規の使用

ベース テンプレートを効果的に使用するには、次の手順に従います。

  1. 複数のテンプレートを定義する: 共通のレイアウトを含む 1 つのベース テンプレート (base.html など) を作成します。あなたのサイトの。 {{define "content"}} を使用して、この基本テンプレート内の特定のコンテンツ セクションを定義します。
  2. コンテンツ テンプレートの作成: サイト上の固有のページごとに、個別のテンプレート (例: page1. html、page2.html)。これらのテンプレート内で、{{define "content"}} を使用して、基本テンプレートの「content」セクション内に表示されるコンテンツを定義します。
  3. 各コンテンツ テンプレートに、基本テンプレートを含めます: 、{{template "base.html"}} を使用してベース テンプレートを含めるようテンプレート エンジンに指示します。これにより、基本レイアウトが各ページのフレームワークとして使用されるようになります。

実装例

以下は、提供されたコードに基づく実装例です。

base.html

{{define "base"}}
<!DOCTYPE html>
<html lang="en">
<body>

header...

{{template "content" .}}

footer...

</body>
</html>
{{end}}

page1.html

{{define "content"}}
<div>
  <h1>Page1</h1>
</div>
{{end}}
{{template "base.html"}}

page2.html

{{define "content"}}
<div>
  <h1>Page2</h1>
</div>
{{end}}
{{template "base.html"}}

テンプレートの解析と実行
テンプレートを定義したら、template.New("").ParseFiles(page1.html,base.html を使用して解析できます) )) そして tmpl.ExecuteTemplate(w, "base", yourContext).

で実行します。

以上が基本テンプレートは Golang HTML/テンプレートでどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。