Запрет экранирования косой черты в шаблонах
Я работаю над преобразованием моего любимого проекта из Python в Go, чтобы помочь мне немного познакомиться с языком. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что она ускользает от моих слэшей. Таким образом, он получит строку вроде:
/location/to/something
и тогда становится
%2flocation%2fto%2fsomething
Теперь он делает это только тогда, когда находится в ссылке (из того, что я читал, экранирование контекстуально), так выглядит строка в шаблоне HTML:
<tr><td><a href="/file?file={{.FullFilePath}}">{{.FileName}}</a></td></tr>
Если возможно, как я могу предотвратить это в шаблоне или в самом коде?
Вот так выглядит моя шаблонная функция (да, я знаю, что она хакерская)
func renderTemplate(w http.ResponseWriter, tmpl string) {
t, err := template.ParseFiles(templates_dir+"base.html", templates_dir+tmpl)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
if tmpl == "view.html" {
err = t.Execute(w, FileList)
} else {
err = t.Execute(w, nil)
}
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}