問題タブ [go-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - 404 ページが見つかりません - css ファイルのレンダリングに移動します
私は現在Goで働いています。ローカル マシンに Web サーバーを作成しました。Go Web アプリケーションで CSS をレンダリングするこのページの指示に従いましたが、 それでもプログラムが css ファイルの場所を見つけられないという 404 エラーが発生します。私のディレクトリは次のとおりです。
src
フォルダに が含まれています。またcss/somefilename.css
、src
も含まれていますserver/server.go
。
server.go
私のファイル内のコードは次のとおりです。
に行くとlocalhost:8080/css/
、404ページが見つかりません。また、テンプレートを使用して html コードをレンダリングしています。テンプレートはフォルダにあります
htmlコードは次のとおりです。
http - 「テンプレート」パッケージを使用して Golang でクライアントに動的 Web ページを生成すると時間がかかりすぎる
template
パッケージを使用して動的 Web ページをクライアントに生成すると、非常に遅くなります。
以下のコードのテスト、golang 1.4.1
ログによると、 で約 3 秒かかったことがわかりましt.Execute(w, nil)
た。なぜそんなに時間がかかるのかわかりません。Apache サーバーもテストtest.html
してみましたが、非常に高速に応答しました。
templates - 使用された変数をリストする方法はありますか?
基本的な go テキスト/テンプレートがあるとしましょう:
テンプレートで使用される変数名の配列を取得したいのですが、実行するために渡すデータでそれらが利用できない場合に実行をスキップできるようにするために、どうにかしてそれを行うことは可能ですか?
私のデータは構造体ではなくマップであるため、.var を実行すると常に何かが返されます。それが存在しない場合は、テンプレートの実行時にエラーが発生することを期待していたときに空の文字列が返されます。
したがって、上記の例では、次のようになりました。
go - Go テンプレートの範囲ループでは、ループの外側で宣言された変数は反復ごとにリセットされますか?
Go テンプレートの範囲ループの外で宣言された変数を使用して、前の投稿が現在の投稿と同じ日に発生したかどうかを確認しようとしています。簡単な例を次に示します。
where.Posts
はそれぞれ a.Content
と aを持つ post 構造体の配列です.Date
。
問題は、ループの各反復の開始時に$prevDate
リセットされるように見えることです。""
反復ごとに値がリセットされる理由を理解し、$prevDate
ここでやろうとしていることを達成する方法を提案してくれる人はいますか?
html - テンプレートの継承で空のページが読み込まれる
私はGolang + AppEngineで基本的なアプリに取り組んでおり、Djangoのようなテンプレート継承を実装しようとしています.これまでのところ、次のコードがあります:
私のテンプレート: base.html
index.html
ページが読み込まれ、エラーはありませんが、空白です。何が間違っているのかわかりません
arrays - 構造体の配列フィールドで HTML をエスケープする
構造体に配列フィールドがある場合、HTML をエスケープするにはどうすればよいですか?
単一のショー ページの場合、次のコードが機能します。
show.go:
インデックス ページの場合:
index.go
index.html:
構造体フィールドにまたがっているときに HTML をエスケープするにはどうすればよいですか?
python - テンプレート変数の置換のみ。テキスト/テンプレートは適切ですか?
ユーザー提供のテキスト ファイル内の一連のプレースホルダー/トークンを、単純なマップまたは環境変数に格納されている対応する値に置き換える効率的な方法を探しています。問題は、テンプレート ファイルがエンド ユーザーによって提供されることです。そのため、コード実行などのリスクなしに、変数の置換のみを行う「安全な」方法を探しています。
Go の標準の「テキスト/テンプレート」は、置換自体には機能しますが、特定のフォーマット要件 (たとえば、キーの前のドット「.」) を課し、その関数呼び出し、パイプラインなどで他の可能性を開きます。
したがって、私が探しているのは、理想的には、テキスト ファイルを構成可能な区切り記号 ("{{}}" または "${}" または "$##$") で解析し、検出されたすべてのトークンを提供されたマップまたはその環境変数値へのルックアップ。Python のstring.Template
( https://docs.python.org/2.6/library/string.html?highlight=string.template#string.Template ) と同様です。
このためにテキスト/テンプレート ライブラリを構成または再利用する簡単な方法はありますか? ユースケースにより適した他のアプローチはありますか? golang 以外のオプション ( 、スクリプトなど) も調べたenvsubtr
のでawk
、sed
何かがより適している場合は、自由に Go の外に出てください。
サンプル入力ファイル ('template.properties'):
サンプル入力データ:
処理後に期待される出力:
go - golang でテンプレート エラーを処理する慣用的な方法
次のhtml/template
ようなものがあるとします。
と時々SomeFunc
エラーを返します。これに対処する慣用的な方法はありますか?
に直接書き込むResponseWriter
と、エラーが発生する前にステータス コード 200 が既に書き込まれています。
template.Execute
できればステータス コード 400 などを返しますが、で直接使用すると、これを行う方法がわかりませんResponseWriter
。足りないものはありますか?