2016-11-30 28 views
0

perlのアプリケーションは、SSI経由でgolangのヘッダを呼び出してバナーをレンダリングします。 ゴランでは、ヘッダーテンプレート{gold_shop_header.shtml}に別のテンプレート{reputation_level_info.html}が含まれています。問題は、インクルードされたテンプレートの内容がレンダリングされていないことです。参照用ネストされたテンプレートがレンダリングされていません:Golang

コード:

gold_shop_header.shtml 

    {{define "Gold Banner"}} 
    . 
    . 
    <div class="text-center mt-3"> 
     <span class="fs-12 font-default cursor-default"> 
       {{ Loc .Lang "Reputation" }} 
       {{ template "reputation_level" . }} 
     </span> 
    </div> 
    . 
    . 
    {{ end }} 


reputation_level_info.html 

    {{define "reputation_level"}} 
    <i class="icon-help-alt ml-5"> 
    <div class="absolute text-left" style=""> 
     <div class="relative hover-reputation-lib"> 
      <div class="relative w-100p"> 
       <div class="fs-18 mt-5">{{ Loc .Lang "Reputation Levels" }}</div> 

       <table class=" mt-10 fs-8 table-repsys" > 
        <tbody> 
         <tr class="bold"> 
          <th>{{ Loc .Lang "Badges" }}</th> 
          <th>{{ Loc .Lang "Name" }}</th> 
          <th>{{ Loc .Lang "Points" }}</th> 
         </tr> 

         {{ range .RepLevels }} 
         <tr class="{{ .Class}}"> 
          <td> 
           <span class="badges-lib {{ .ImageName}}"></span> 
          </td> 

          {{ if eq .Badges "off" }} 
          <td> 
           {{ .Badges }} 
          </td> 
          <td> 
           {{ if .UpperBound }} 
            {{ .LowerBound }} - {{ .UpperBound }} Points 
           {{ else }} 
            &gt; {{ .LowerBound }} Points 
           {{ end }} 
          </td> 
          {{ else }} 
           <td colspan="2">{{ Loc ..Lang "Reputation Off" }}</td> 
          {{ end }} 
         </tr> 
         {{ end }} 
        </tbody> 
       </table> 
      </div> 
     </div> 
    </div> 
</i> 
{{ end }} 




gen.go 

    var reputationTemplatePath = "/var/ssi/banner/gold/reputation_level_info.html" 

    _goldShopReputationTemplateBytes, err := ioutil.ReadFile(reputationTemplatePath) 
    if err != nil { 
     log.Panic("err", "error reading template", err) 
    } 

    var goldShopRepString = string(_goldShopReputationTemplateBytes) 

    var headerTemplatePath = "/var/ssi/banner/gold/gold_shop_header.shtml" 

    _goldShopHeaderTemplateBytes, err := ioutil.ReadFile(headerTemplatePath) 
    if err != nil { 
     log.Panic("err", "error reading template", err) 
    } 

    var goldShopHeaderString = string(_goldShopHeaderTemplateBytes) 

    var templatesString [] string 

    GoldShopHeaderTemplate, err = template.New("Gold Shop Header").Funcs(GetTemplateFunctionMap()). 
     Parse(goldShopHeaderString) 
    if err != nil { 
     log.Panic("err", "error parsing template", err) 
    } 
    GoldShopHeaderTemplate.Parse(goldShopRepString) 


htmlBuffer := bytes.NewBufferString("") 
template_exec_err := GoldShopHeaderTemplate.Execute(htmlBuffer, argsHeader) 

間違っているものを提案してください。私はゴランには新しいです。含まれているテンプレートはレンダリングされていません。また、メインテンプレートの場合、{{"ゴールドバナー定義}}ステートメントを削除するとレンダリングされますが、このステートメントを含めるとレンダリングされません。 エラーは報告されません。

答えて

1

あなたはgoldShopRepString

にこの行を解析された後、あなたはGoldShopHeaderTemplateを再割り当てするのを忘れ:

GoldShopHeaderTemplate.Parse(goldShopRepString) 

は次のようになります。

GoldShopHeaderTemplate, err := GoldShopHeaderTemplate.Parse(goldShopRepString) 
+0

ありがとうございました。それはうまくいった。 – Ashi

関連する問題