簡體   English   中英

http.FileServer響應錯誤的mime“Content-Type”

[英]http.FileServer response with wrong mime “Content-Type”

我正在使用http.FileServer來提供mp3文件的目錄,我的模板然后在javascript中使用src 但是,響應使用Content-Type text/html而不是audio/mpeg 如何設置FileServer響應的mime類型,我看到了這個問題在golang HTTP FileServer中的Content-Type標頭上設置'charset'屬性 ,但我仍然不確定如何覆蓋mime類型。

我的代碼如下所示:

fs := http.FileServer(http.Dir(dir))
http.Handle("/media", http.StripPrefix("/media", fs))
http.HandleFunc("/", p.playlistHandler)
http.ListenAndServe(":5177", nil)

我得到的錯誤是:

HTTP "Content-Type" of "text/html" is not supported. Load of media resource http://localhost:5177/media/sample1.mp3 failed.

這不是內容類型的問題。 當你請求mp3時,你的fs處理程序沒有被調用。 您需要像這樣在模式/media和條帶前綴中添加/

http.Handle("/media/", http.StripPrefix("/media/", fs))

原因在於net / http.ServeMux的文檔

模式名稱固定,帶根的路徑,如“/favicon.ico”,或帶根的子樹,如“/ images /”(請注意尾部斜杠)。 較長的模式優先於較短的模式,因此如果有“/ images /”和“/ images / thumbnails /”注冊的處理程序,則后面的處理程序將被調用以“/ images / thumbnails /”開頭的路徑和前者將收到“/ images /”子樹中任何其他路徑的請求。

使用/media您正在為路徑注冊處理程序,但是使用尾部斜杠,它會將其視為有rooted subtree ,並將在該樹下提供請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM