C# 如何在.NET Core中没有文件扩展名的文件上设置MIME类型?
我已经得到了一些文件来处理WebAssembly模块,该模块应该设置为作为应用程序/八位字节流加载 我在Startup.cs中找到了用于设置MIME类型的文档,并在WebAssembly模块本身中实现了这一点 不幸的是,还有三个文件应该作为应用程序/八位字节流加载,它们没有文件扩展名,例如C# 如何在.NET Core中没有文件扩展名的文件上设置MIME类型?,c#,.net-core,mime-types,webassembly,C#,.net Core,Mime Types,Webassembly,我已经得到了一些文件来处理WebAssembly模块,该模块应该设置为作为应用程序/八位字节流加载 我在Startup.cs中找到了用于设置MIME类型的文档,并在WebAssembly模块本身中实现了这一点 不幸的是,还有三个文件应该作为应用程序/八位字节流加载,它们没有文件扩展名,例如file1-shard1。我已经尝试过直接用wilcards对它们进行寻址,但它们在Firefox的网络选项卡中仍然显示为Type=html 有人知道如何正确设置这些文件的MIME类型吗 //为Web程序集设置
file1-shard1
。我已经尝试过直接用wilcards对它们进行寻址,但它们在Firefox的网络选项卡中仍然显示为Type=html
有人知道如何正确设置这些文件的MIME类型吗
//为Web程序集设置FileExtension内容提供程序
var provider=new FileExtensionContentTypeProvider();
provider.Mappings[“.wasm”]=“应用程序/wasm”;
//为碎片文件设置MIME类型
provider.Mappings[“file1-shard1”]=“应用程序/八位字节流”;
provider.Mappings[“*shard1*”]=“应用程序/八位字节流”;
provider.Mappings[“*”]=“应用程序/八位字节流”;
provider.Mappings[“]”=“应用程序/八位字节流”;
app.UseStaticFiles(新的StaticFileOptions
{
ContentTypeProvider=提供程序
});
不能使用文件扩展名ContentTypeProvider
执行此操作,因为如果文件没有扩展名,它会在内部失败
您可能需要实现一个自定义的
IContentTypeProvider
,或者设置StaticFileOptions。DefaultContentType
您不能使用FileExtensionContentTypeProvider
,因为如果文件没有扩展名,它会在内部失败
您可能需要实现一个自定义的
IContentTypeProvider
,或者设置StaticFileOptions.DefaultContentType
,感谢yaakov在这方面的领导。除了DefaultContentType之外,您还需要告诉应用程序服务在包含这些文件的文件夹中提供ServeUnknownFileType
在app.UseStaticFiles()下面的代码中
是使wwwroot文件夹工作的现有代码。此代码应添加到Startup.cs
然后我为WebAssembly文件设置映射。然后,这将用于该特定文件夹的app.UseStaticFiles()的新迭代,该文件夹包括默认内容类型和ServeUnknowFileTypes
它并不完美,因为ServeUnknownFileTypes存在一些安全风险,但在本例中,它仅限于单个文件夹
//wwwroot的默认选项
app.UseStaticFiles();
//为Web程序集设置文件扩展内容提供程序
var provider=new FileExtensionContentTypeProvider();
provider.Mappings[“.wasm”]=“应用程序/wasm”;
app.UseStaticFiles(新的StaticFileOptions
{
ContentTypeProvider=提供程序,
ServeUnknownFileTypes=true,
DefaultContentType=“应用程序/八位字节流”,
FileProvider=新的物理FileProvider(
Path.Combine(Directory.GetCurrentDirectory(),“wwwroot/WebAssemFiles”),
RequestPath=“/WebAssemFiles”
});
感谢雅科夫在这方面的领导。除了DefaultContentType之外,您还需要告诉应用程序服务在包含这些文件的文件夹中提供ServeUnknownFileType
在app.UseStaticFiles()下面的代码中
是使wwwroot文件夹工作的现有代码。此代码应添加到Startup.cs
然后我为WebAssembly文件设置映射。然后,这将用于该特定文件夹的app.UseStaticFiles()的新迭代,该文件夹包括默认内容类型和ServeUnknowFileTypes
它并不完美,因为ServeUnknownFileTypes存在一些安全风险,但在本例中,它仅限于单个文件夹
//wwwroot的默认选项
app.UseStaticFiles();
//为Web程序集设置文件扩展内容提供程序
var provider=new FileExtensionContentTypeProvider();
provider.Mappings[“.wasm”]=“应用程序/wasm”;
app.UseStaticFiles(新的StaticFileOptions
{
ContentTypeProvider=提供程序,
ServeUnknownFileTypes=true,
DefaultContentType=“应用程序/八位字节流”,
FileProvider=新的物理FileProvider(
Path.Combine(Directory.GetCurrentDirectory(),“wwwroot/WebAssemFiles”),
RequestPath=“/WebAssemFiles”
});