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

时间:2016-08-13 00:11:23

标签: json go mime-types static-files raml

我正在使用httprouter Go库来实现REST API服务,我决定尝试ServeFiles来提供与我的API相关联的一些模式文件。我注意到它使用Go的方便的内置net/http软件包来提供静态文件。

它的工作方式几乎完美,除了一个nit:RAML文件与内容类型text/plain一起提供。但是,我注意到,我已经使用application/json提供了JSON模式文件,因此显然存在某种与静态文件服务相关的MIME类型关联。有没有办法将其配置为检测我的RAML文件,并用内容类型application/raml+yaml代替它?

我遵循RAML文件的.raml文件扩展名和JSON模式的.json惯常惯例。

1 个答案:

答案 0 :(得分:2)

是的,有办法做到这一点。 net/http库使用引擎盖下的mime库来检测内容类型。特别是,它使用TypeByExtension来确定文件扩展名是否与已知的内容类型相关联。要配置它,只需调用AddExtensionType,例如,在应用启动期间注册静态文件路由的位置。