亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

template.ParseFiles 的問題

template.ParseFiles 的問題

Go
慕妹3146593 2021-12-27 17:57:15
我有以下 http.Handle 函數(簡化):func loginHandler(w http.ResponseWriter, r *http.Request) {        cwd, _ := os.Getwd()        t, err := template.ParseFiles(filepath.Join(cwd, "./views/login.html"))        if err != nil {            fmt.Fprintf(w, "503 - Error")            fmt.Println(err)        } else {            t.Execute(w, nil)        }}它在使用時按預期工作go build main.go,但是 - 運行后go install,我收到一個錯誤,它找不到文件(因為它現在被編譯到/bin/<appname>(沒有視圖文件夾的地方)。除了將視圖文件夾添加到/bin目錄或硬編碼路徑,我怎樣才能template.ParseFiles()找到正確的路徑?是否有一些標準方法可以包含用于編譯程序的“靜態”資源?
查看完整描述

1 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

沒有標準方法可以為編譯程序包含靜態資源;然而,一種常見的約定是將配置存儲在環境變量中。


例如,在運行您的應用程序時,將預期的環境變量放入環境中:


$> TEMPLATE_VIEWS=/var/local/app/views myapp

在您的代碼中,您會找到文件夾:


func loginHandler(w http.ResponseWriter, r *http.Request) {

    t, err := template.ParseFiles(filepath.Join(os.Getenv("TEMPLATE_VIEWS"), "login.html"))

    if err != nil {

        fmt.Fprintf(w, "503 - Error")

        fmt.Println(err)

    } else {

        t.Execute(w, nil)

    }

}


查看完整回答
反對 回復 2021-12-27
  • 1 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號