首页 文章

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

提问于
浏览
12

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

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

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

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

2 回答

  • 1

    尝试将托管环境从 生产环境 更改为开发

    • 检查 Hosting environment 是否设置为 ProductionDevelopment (Webpack HMR已禁用 生产环境 )
      Hosting Env is in Production

    • 将主机环境更改为开发 .
      export ASPNETCORE_ENVIRONMENT=development 添加到 ~/.bash_profile~/.zshrc 文件中 .
      请按照link进行更详尽的解释 .
      因此你的输出应该是:
      Hosting environment is not Development

    link解释了如何更深入地改变环境 .

  • 21

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

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

    解决方案取自thread on GitHub

相关问题