Angular 4抛出错误EventSource的响应在迁移到.NetCore 2.0后具有MIME类型("text/html"),而不是"text/event-stream"

Ser*_*.ID 14 asp.net-core asp.net-core-2.0 angular

我有一个基于Asp .Net Core的现有SPA(我使用Yo generator-aspnetcore-spa来生成模板).它运行得很好,但在迁移到.NetCore 2.0后,它开始抛出错误:

EventSource的响应具有不是"text/event-stream"的MIME类型("text/html").中止连接.

据我所知,这个问题只影响更新任何文件后的自动刷新(据我所知,热模块更换).所有其他的东西都很好.

那么,问题是如何解决上面的错误?

Ser*_*.ID 23

我找到了解决方案,主要问题是.NetCore路由系统,它正在接管并尝试处理请求,返回text/html,所以它发送实际的webpack_hmr热文件.要修复它,您需要在Startup.cs文件中编辑Configure方法.

  1. 之前:

    // some code
    app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions {
                HotModuleReplacement = true                    
            });
    //some code
    
    Run Code Online (Sandbox Code Playgroud)
  2. 后:

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

解决方案取自GitHub上的这个主题