Я пытаюсь настроить свое собственное приложение angular 8, которое будет обслуживаться изнутри веб-сайта ASP. Net Core (поэтому мне не приходится сталкиваться с межсайтовым скриптингом или два (под) домена или проблемы с аутентификацией.
Я создал веб-приложение в VS Code и скомпилировал его в папку wwwroot/app
в моем проекте asp net core 3.0 ( Я могу запустить приложение, используя ng serve
очень хорошо).
Я добавил это в Startup
ConfigureServices()
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "wwwroot/app";
});
И иметь это в Configure()
app.UseSpa(spa => {});
Это частично работает. Когда я загружаю проект asp. net, приложение angular начинает загружаться. Но консоль заполнена (по одному на каждый файл, указанный в сгенерированном индексе. html):
Загрузка модуля из «https://localhost: 5001 / время выполнения. js» заблокирована из-за запрещенного типа MIME («text / html»).
Загрузка модуля из «https://localhost: 5001 / polyfills. js» была заблокирована из-за запрещенного типа MIME («text / html»).
Загрузка модуля из «https://localhost: 5001 / vendor. js» заблокировано из-за запрещенного типа MIME («text / html»).
Загрузка модуля из «https://localhost: 5001 / styles. js» заблокирована из-за запрещенного типа MIME («text / html»).
Загрузка модуля из «https://localhost: 5001 / main. js» была заблокирована из-за запрещенного типа MIME («text / html»).
Насколько я понимаю, angular -cli не включал mime-типы в файлы, когда они были "скомпилированы" , и, следовательно, веб-браузер не заботился о них.
Люди angular не думают, что это ошибка / ошибка, и закрыли проблему, связанную с этим (хотя это поведение отличается от того, как Angular 7 сделал это): https://github.com/angular/angular-cli/issues/10325
Чтение этого вопроса Как добавить Mime Types в 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 / типы файлов. Но это ничего не сделало.
Любые другие идеи о том, как это можно исправить без редактирования сгенерированных файлов?