我有一個 Go 代理服務器,它將傳入的請求代理到不同的 nginx 服務,其中部署了一堆從 Hugo 生成的靜態文件。Go代理服務器代碼是:func (w http.ResponseWriter, r *http.Request) { proxy := httputil.NewSingleHostReverseProxy(target) proxy.Transport = debug.Transport{} // Set some Debug TCP options here proxy.ServeHTTP(w, r)}創建debug.Transport如下:type Transport struct { Transport http.RoundTripper}func (d Transport) RoundTrip(r *http.Request) (*http.Response, error) { fmt.Println(r.Header) d.Transport = &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } return d.Transport.RoundTrip(r)}在調試傳輸中,我已經忽略了 TLS 配置的證書檢查。如果我直接訪問提供hugo靜態文件的nginx url,那么靜態文件就可以完美加載。即使我除了 nginx 之外還從 nginx-ingress 訪問,靜態文件也可以正常使用。但是,當通過 Go 代理提供請求時,我收到錯誤:Failed to find a valid digest in the 'integrity' attribute for resource 'https://<blah>/js/main.min.29b0315468c00226fa6f4556a9cebc0ac4fe1ce1457a01b22c0a06b329877383.js' with computed SHA-256 integrity 'Nk/s9htIgKJ5jeLFxUMWgIQGhxGZBKoEWtWEy2qYtJk='. The resource has been blocked.integerity知道如何在 Go http 代理中跳過這些檢查嗎?
1 回答

撒科打諢
TA貢獻1934條經驗 獲得超2個贊
我已經找出問題所在了。golang 代理工作正常。沒有任何問題。Hugo 靜態頁面有一些對縮小的 js 和 css 的引用,帶有絕對路徑,這導致了問題。當請求來自 golang 代理時,它來自不同的 url 前綴,因此發現 css 和 js 已損壞,因為絕對路徑導致的文件與預期的一個 Hugo 靜態文件不同(因此完整性失敗錯誤)。
解決方案是簡單地在hugo 配置中添加前綴baseURL
。
- 1 回答
- 0 關注
- 167 瀏覽
添加回答
舉報
0/150
提交
取消