10

基本情報

  • Go バージョン: go1.4.2 darwin/amd64
  • オペレーティング システム: Mac OS X 10.10.5

goginに基づいて書かれた小さな Web プロジェクトに取り組んでいます。これが私のgolangコードです。実行後go run test.go、8089 でリッスンする Web サーバーができました。

Golang test.go

package main

import "github.com/gin-gonic/gin"
import "net/http"

func main() {
    router := gin.Default()
    router.LoadHTMLGlob("templates/*")
    router.GET("/index", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.html", gin.H{
            "scheme": "http",
            "domain": "meican.loc",
        })
    })
    router.Run(":8089") // listen and serve on 0.0.0.0:8089
}

バックエンドで生成された html コードには、フロントエンドの JavaScript エンジン (Angular.js としましょう) で使用されるテンプレートが含まれている必要があります。

したがって、テンプレート コードは次のscriptようにタグ内にあります。

templates/index.html の一部

<script type="text/template" charset="utf-8">
  <div data="{{.scheme}}://{{.domain}}/qr"></div>
  <div data="{{.scheme}}://{{.domain}}/qr"></div> <!-- problem here -->
</script>

{{.domain}}2回目に使うと違う結果になりました。ブラウザを更新し、ソース コードをチェックアウトしました。それから私はこれを得ました:

ブラウザのソースコードの結果

<script type="text/template" charset="utf-8">
  <div data="http://meican.loc/qr"></div>
  <div data="http://"meican.loc"/qr"></div>  <!-- problems here -->
</script>

2 番目divには 2 つの余分な二重引用符があります。

なぜこれが起こるのですか?そして、この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

これは Go のバグであり、2016 年 3 月の時点で 1.7 で修正される予定です( 1.6でも部分的に対処されています)。

于 2016-03-26T19:52:46.520 に答える