ASP.NET 核心 - 防止提供某些文件类型的静态文件
ASP.NET Core - prevent static file of certain filetype from being served
我正在尝试配置 ASP.NET Core 以禁止在某些情况下提供 .map 文件。我试图将它从已知文件类型中删除,但这似乎并不能阻止它实际提供该文件。这就是我现在拥有的:
app.UseSpa(spa =>
{
spa.Options.SourcePath = "Client";
if (env.IsDevelopment())
{
var customPort = 60001;
spa.UseProxyToSpaDevelopmentServer($"http://localhost:{customPort}");
spa.UseReactDevelopmentServer("start");
}
});
var contentTypeProvider = new FileExtensionContentTypeProvider();
contentTypeProvider.Mappings.Remove(".map");
app.UseSpaStaticFiles(new StaticFileOptions
{
ContentTypeProvider = contentTypeProvider
});
使用此配置,我仍然可以在浏览 .map
文件时加载它们。我能做些什么来防止这种情况发生?
尝试使用 UseStaticFiles
,在 app.UseSpa
调用之前,甚至在调用 app.UseMvc
之前(如果适用)。我假设 .map
用于 css/scss 映射。这不是一个特别的 SPA
文件,因此正在提供它。
var contentTypeProvider = new FileExtensionContentTypeProvider();
contentTypeProvider.Mappings.Remove(".map");
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = provider
});
app.UseMvc(); // if applicable
app.UseSpa(spa =>
{
spa.Options.SourcePath = "Client";
if (env.IsDevelopment())
{
var customPort = 60001;
spa.UseProxyToSpaDevelopmentServer($"http://localhost:{customPort}");
spa.UseReactDevelopmentServer("start");
}
});
app.UseSpaStaticFiles();
希望对您有所帮助
这里的问题是我使用的是通过 Node.js 代理的本地开发设置。在这种情况下,代理会处理静态文件而不是 ASP.NET Core。我不得不将其切换并使用已发布的代码进行测试。
我正在尝试配置 ASP.NET Core 以禁止在某些情况下提供 .map 文件。我试图将它从已知文件类型中删除,但这似乎并不能阻止它实际提供该文件。这就是我现在拥有的:
app.UseSpa(spa =>
{
spa.Options.SourcePath = "Client";
if (env.IsDevelopment())
{
var customPort = 60001;
spa.UseProxyToSpaDevelopmentServer($"http://localhost:{customPort}");
spa.UseReactDevelopmentServer("start");
}
});
var contentTypeProvider = new FileExtensionContentTypeProvider();
contentTypeProvider.Mappings.Remove(".map");
app.UseSpaStaticFiles(new StaticFileOptions
{
ContentTypeProvider = contentTypeProvider
});
使用此配置,我仍然可以在浏览 .map
文件时加载它们。我能做些什么来防止这种情况发生?
尝试使用 UseStaticFiles
,在 app.UseSpa
调用之前,甚至在调用 app.UseMvc
之前(如果适用)。我假设 .map
用于 css/scss 映射。这不是一个特别的 SPA
文件,因此正在提供它。
var contentTypeProvider = new FileExtensionContentTypeProvider();
contentTypeProvider.Mappings.Remove(".map");
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = provider
});
app.UseMvc(); // if applicable
app.UseSpa(spa =>
{
spa.Options.SourcePath = "Client";
if (env.IsDevelopment())
{
var customPort = 60001;
spa.UseProxyToSpaDevelopmentServer($"http://localhost:{customPort}");
spa.UseReactDevelopmentServer("start");
}
});
app.UseSpaStaticFiles();
希望对您有所帮助
这里的问题是我使用的是通过 Node.js 代理的本地开发设置。在这种情况下,代理会处理静态文件而不是 ASP.NET Core。我不得不将其切换并使用已发布的代码进行测试。