階層、編集、リロードのための AppEngine アプリケーションでの Go テンプレートの構造化
この記事では、Go ベースの AppEngine でのテンプレートの構造化について詳しく説明します。アプリケーション、階層構造への対応、編集の容易さ、自動テンプレートreloading.
階層構造
テンプレートの階層構造を作成するには、パッケージのルート ディレクトリの専用のテンプレート サブディレクトリの下にテンプレートを保存することをお勧めします。これにより、組織化が可能になり、template.ParseFiles() によるトラバースが簡素化されます。
編集の容易さ
.go ファイルにテンプレート テキストを埋め込むと、HTML ツールを使用した編集が妨げられる可能性があります。これを解決するには、テンプレートを生のテキスト ファイルとしてテンプレート サブディレクトリに保存します。パフォーマンス上の懸念から、テンプレートを直接アップロードしないことをお勧めしますが、代わりのアプローチもあります。
自動再ロード
開発サーバーでのテンプレートの自動再ロードは、次のように定義することで実現できます。パッケージレベルのテンプレート変数。この変数はパッケージの初期化中に設定され、テンプレートが変更されると更新されます。
プロジェクト構造の例
次のプロジェクト構造を考えてみましょう:
|-- 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 中国語 Web サイトの他の関連記事を参照してください。