在某些情况下,我试图将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
文件时,我仍然能够加载它们。我该怎么做才能防止这种情况?
答案 0 :(得分:0)
请改为在致电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();
我希望这对您有帮助
答案 1 :(得分:0)
这里的问题是我正在使用通过Node代理的本地开发设置。在这种情况下,代理将处理静态文件而不是ASP.NET Core。我不得不将其切换并使用发布的代码进行测试。