ServiceStack插件如何为新文件后缀添加MimeType,并允许提供文件后缀?

时间:2018-05-18 22:03:41

标签: servicestack

我想将文件后缀“.wasm”添加到AppHost的AllowFileExtensions属性中,我想将MimeType“application / wasm”与该文件后缀相关联,以便基于ServiceStack的Windows服务可以使用此后缀提供静态文件。在我的插件的Configure方法中,我尝试过这段代码,但它无效。

public void Configure(IAppHost appHost) {
  // Add the MIMEType application/wasm and associate it with .wasm files
  MimeTypes.ExtensionMimeTypes["wasm"] = "application/wasm";
  // Allow static files ending in .wasm to be served
  var config = new HostConfig();
  var allowFileExtensions = config.AllowFileExtensions;
  allowFileExtensions.Add(".wasm");
}

对我的ServiceStack Windows服务请求以.wasm结尾的静态文件返回403错误,响应标头中的Content-Type为“text / plain”。

关于我做错了什么的建议,以及如何最好地允许新的后缀并关联新的MimeType?

1 个答案:

答案 0 :(得分:2)

我在this commit中为ServiceStack允许的文件扩展名列表添加了wasm个文件扩展名。此更改可从v5.1.1获得,现在为available on MyGet

对于早期版本的ServiceStack,您可以通过修改IAppHost.Config来注册允许的文件扩展名,例如:

public void Register(IAppHost appHost) 
{
    appHost.Config.AllowFileExtensions.Add("wasm");
}

您无需为wasm注册MimeType,因为未知内容类型的默认MimeType为application/{ext}.wasm会返回application/wasm