我正在使用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/