我正在尝试设置我自己的 Angular 8 应用程序以从 ASP.Net Core 网站内部提供服务(因此我不必处理跨站点脚本或拥有两个(子)域或问题带身份验证。
我在 VS Code 中构建了一个 Web 应用程序,并将其编译到wwwroot/app
我的 asp net core 3.0 项目中的文件夹中(我可以正常运行该应用程序ng serve
)。
我已经添加了这个Startup
ConfigureServices()
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "wwwroot/app";
});
把这个放进去Configure()
app.UseSpa(spa => {});
这部分有效。当我加载 asp.net 项目时,角度应用程序开始加载。但是控制台充满了(生成的 index.html 中指定的每个文件一个):
由于不允许的 MIME 类型(“文本/html”)。
由于不允许的 MIME 类型(“文本/html”)。
由于不允许的 MIME 类型(“文本/html”)。
由于不允许的 MIME 类型(“文本/html”)。
由于不允许的 MIME 类型(“文本/html”)。
据我了解,angular-cli 在“编译”时没有在文件中包含 mime 类型,因此网络浏览器不关心它们。
有角度的人不认为这是一个错误/错误,并且已经关闭了与此相关的问题(尽管这种行为与 Angular 7 的做法不同):https ://github.com/angular/angular-cli/issues /10325
阅读这个问题How to add Mime Types in ASP.NET Core我想我可以做这样的事情:
var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".js"] = "application/javascript";
provider.Mappings[".html"] = "text/html";
provider.Mappings[".ico"] = "image/vnd.microsoft.icon";
var statFilesOptions = new StaticFileOptions
{
ContentTypeProvider = provider
};
app.UseSpa(spa =>
{
spa.Options.DefaultPageStaticFileOptions = statFilesOptions;
});
将 mime/类型添加到文件中。但这根本没有任何作用。
关于如何在不编辑生成的文件的情况下解决此问题的任何其他想法?