首頁 > 後端開發 > Golang > 主體

為什麼我的是``?

Susan Sarandon
發布: 2024-11-06 21:34:02
原創
183 人瀏覽過

Why is my ``?

不必要的

最近在使用範本產生文件(特別是自述文件和許可證)的開發工具中出現了一個問題。一切都無縫運行,除了 字符不受影響。

為了說明該問題,請考慮以下程式碼片段:

<code class="pawn">#include <{{.Repo}}></code>
登入後複製

此處,應按預期插入Repo 參數,結果為:

#include <sometext>
登入後複製
登入後複製

然而,實際結果是:

#include &amp;lt;sometext>
登入後複製

文件分析並未對此行為提供明確的解釋。對 > 來說這似乎不合邏輯。字符保持不受影響,而

解決方案在於理解 html/template 的用途。它專為產生 HTML 輸出而設計,提供自動上下文相關轉義以防止程式碼注入。文件明確指出:

html/template 僅用於產生 HTML 輸出。它提供與套件 text/template 相同的接口,並且只要輸出是 HTML,就應該使用它來代替 text/template。

當輸出不是 HTML 時,就像這裡的自述文件一樣,它是使用文字/模板更合適。此模板引擎不會轉義數據,解決了不必要的字元轉換問題。透過切換到text/template,實現了預期的輸出:

#include <sometext>
登入後複製
登入後複製

html/template 和text/template 之間的區別確保僅在必要時應用上下文相關的轉義,從而防止非預期的字符轉換。 -HTML輸出場景。

以上是為什麼我的是``?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!