首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误的mime“内容-类型”的http.FileServer响应

错误的mime“内容-类型”的http.FileServer响应
EN

Stack Overflow用户
提问于 2016-09-15 20:43:20
回答 1查看 4.6K关注 0票数 10

我使用http.FileServer来提供一个mp3文件目录,我的模板然后是javascript中的src。但是,响应使用的是Content-Type text/html而不是audio/mpeg。如何设置FileServer响应的mime类型,我看到了这个问题在golang中的内容类型标头上设置“charset”属性,但我仍然不确定如何覆盖mime类型。

我的代码如下所示:

代码语言:javascript
复制
fs := http.FileServer(http.Dir(dir))
http.Handle("/media", http.StripPrefix("/media", fs))
http.HandleFunc("/", p.playlistHandler)
http.ListenAndServe(":5177", nil)

我得到的错误是:

代码语言:javascript
复制
HTTP "Content-Type" of "text/html" is not supported. Load of media resource http://localhost:5177/media/sample1.mp3 failed.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-15 21:02:30

这不是内容类型的问题。当您请求fs时,不会调用您的mp3处理程序。您需要将一个/添加到您的模式/media和条带前缀中,如下所示

代码语言:javascript
复制
http.Handle("/media/", http.StripPrefix("/media/", fs))

原因是在net/http.ServeMux文档中

模式名称固定,根路径,如"/favicon.ico",或根子树,如“/图像/”(注意尾随斜杠)。较长的模式优先于较短的模式,因此,如果同时为“/映像/”和“/图像/缩略图/”注册了处理程序,则将调用后一个处理程序处理“/图像/缩略图/”开头的路径,而前者将接收"/images/“子树中任何其他路径的请求。

只要使用/media,您就可以为路径注册一个处理程序,但是使用尾随斜杠,它将它视为一个rooted subtree,并将在该树下为请求提供服务。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39520045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档