json - 如何使用具有正确 MIME 类型的 httprouter 提供静态文件?

标签 json go mime-types static-files raml

我正在使用httprouter Go库实现一个REST API服务,我决定尝试ServeFiles提供与我的 API 关联的一些架构文件。我注意到它使用了 Go 方便的内置 net/http用于提供静态文件的底层包。

它几乎完美地工作,除了一点:RAML 文件以内容类型 text/plain 提供。不过,我注意到,我使用 application/json 提供的 JSON 架构文件,因此显然静态文件服务存在某种 MIME 类型关联。有没有办法配置它来检测我的 RAML 文件本身,并使用内容类型 application/raml+yaml 来提供它?

我遵循 RAML 文件的 .raml 文件扩展名和 JSON 架构的 .json 文件扩展名的惯例。

最佳答案

是的,有一种方法可以做到这一点。 net/http 库在底层使用 mime 库来检测内容类型。特别是,它使用 TypeByExtension确定文件扩展名是否与已知内容类型相关联。要配置它,只需调用 AddExtensionType ,比如说,您在应用程序启动期间注册静态文件路由的位置。

关于json - 如何使用具有正确 MIME 类型的 httprouter 提供静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38927971/

相关文章:

php - 当我包含特殊字符串时,Wordpress 不会解析 JSON

android - Android 中的多种 MIME 类型

java - 为什么要使用 multipart/form-data 而不是 application/octet-stream?

javascript - Js 或 jquery file.type.match 仅适用于 jpg 和 png

php - 我将如何使用 JSON/PHP/Mysql 保存我的 Javascript 对象,以便在用户返回时重新加载它们?

mysql - 使用 MySQL 查询 JSON 数组

json - Postgres - 选择大型 jsonb 列的性能

go - 不正确的数据重传

go - bufio.Reader ReadRune - 大小为 0(返回值)可能吗?

go - 编译二进制比运行慢 "go run"