Ошибка выдачи Angular 4. Ответ EventSource имеет тип MIME (text / html), который не является текстом / потоком событий после перехода на .NetCore 2.0

У меня есть существующий SPA на основе Asp .Net Core (я использовал Yo generator-aspnetcore-spa для создания шаблона). Он работал отлично, но после перехода на .NetCore 2.0 начал выдавать ошибку:

Ответ EventSource имеет MIME-тип («текст / html»), который не является «текст / поток событий». Прерывание соединения.

Насколько я понял, эта проблема затрагивает только автообновление после обновления любого файла (горячая замена модуля, насколько мне известно). Все остальное работает нормально.

Итак, вопрос в том, как исправить ошибку выше?


person Serg.ID    schedule 22.08.2017    source источник


Ответы (2)


Я нашел решение, в основном проблема в системе маршрутизации .NetCore, она берет на себя и пытается обработать запрос, возвращая text / html, поэтому он отправляет фактический горячий файл webpack_hmr. Чтобы исправить это, вам нужно отредактировать метод Настроить в файле Startup.cs.

  1. До:

    // some code
    app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions {
                HotModuleReplacement = true                    
            });
    //some code
    
  2. После:

    // some code
    app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions {
                HotModuleReplacement = true,
                HotModuleReplacementEndpoint = "/dist/__webpack_hmr"                   
            });
    // some code
    

Решение взято из этой ветки на GitHub

person Serg.ID    schedule 22.08.2017
comment
@ Serg.ID, какая заноза в заднице. HMR был нарушен с момента обновления до 2.0 - person tylerjgarland; 02.11.2017
comment
Мне нужно больше поиграть с конечной точкой, но это определенно была проблема. Спасибо! - person BRogers; 22.05.2018

Попробуйте изменить среду размещения с производственной на разрабатываемую

  1. Убедитесь, что для вашей среды хостинга установлено значение Производство или Разработка (Webpack HMR отключен для рабочей среды)  Hosting Env находится в разработке
  2. Измените среду хостинга на «Разработка».
    Добавьте export ASPNETCORE_ENVIRONMENT=development в свой ~/.bash_profile или ~/.zshrc файл.
    Следуйте ссылка для более подробного объяснения.
    Таким образом, ваш вывод должен быть:  Среда хостинга не является разработкой

Эта ссылка объясняет, как измените env более подробно.

person Eddy Ekofo    schedule 20.10.2017
comment
Проблема существовала в среде разработки. Все работало до перехода на .net core 2 - person Serg.ID; 21.10.2017
comment
Я попробовал ваш ответ, и он не сработал. Затем ссылка на мою 2-ю точку исправила мою ошибку. Проблема заключалась в моем хостинге env. - person Eddy Ekofo; 21.10.2017
comment
С этой точки зрения вы абсолютно правы, HMR работает только в Dev env. Однако этот вопрос касался ошибки «Ответ EventSource имеет тип MIME (текст / html)». - person Serg.ID; 21.10.2017
comment
Ты прав! это та же ошибка, что и у меня, но моя проблема была другой, я думаю, и я смог решить ее, изменив хостинг env. - person Eddy Ekofo; 22.10.2017
comment
@ Serg.ID По-прежнему не могу понять это. После развертывания наш env не является Dev, тогда как решить эту проблему? там он не будет использовать HMR. - person k11k2; 12.12.2017
comment
HMR не будет работать в производственном режиме, его (HMR) рекомендуется отключить в производственном режиме. (если я понимаю вашу проблему) - person Eddy Ekofo; 13.12.2017