VS2019中的ASP CORE和Webpack:如何配置IIS Express以将js / css请求代理到Webpack devserver?

时间:2019-06-27 21:51:10

标签: webpack webpack-dev-server webpack-4 visual-studio-2019 asp.net-core-2.2

这样的代码

<link rel="stylesheet" href="~/dist/vendor.css" asp-append-version="true" />
<link rel="stylesheet" href="~/dist/main.css" asp-append-version="true" />
在IIS Express上启动的

使用IIS Express端口请求文件,当我需要从在另一个端口上工作的webpack devserver返回这些文件时。

有一篇文章介绍如何"switch"配置以及将必需的端口“放置”到<link><script>引用中,但是指导IIS Express(或自托管)应该更容易ASP Core应用程序)以代理对cssjs的请求。

不幸的是,这不起作用(无效):

<system.net>
    <defaultProxy>
      <proxy
        proxyaddress="http://localhost:55510"
        bypassonlocal="false"
      />
      <!--<bypasslist>
        <add address="^((?!\/dist\/).)*$" />
      </bypasslist>-->
    </defaultProxy>
  </system.net>

如何配置IISEXpress或(自托管应用)将/dist/*.js/dist/*.css的请求代理到webpack devserver

PS It seems与VS + webpack / devserver一起工作的那些开发人员更喜欢将webpack devserver配置为将对html / json / images / fonts的请求代理到IISExpress(解决方法相同,但从另一端开始) )。为什么?

1 个答案:

答案 0 :(得分:0)

  

“只需​​编写执行代理的中间件”

解决它。

我已经为其创建了nuget包:DashboardCode.AspNetCore.Http

GitHub:https://github.com/DashboardCode/AspNetCore

首先将其添加到Startup.cs

using DashboardCode.AspNetCore.Http;

然后将其添加到Startup.ConfigureServices()

serviceCollection.AddSingleton( new DevProxyMiddlewareSettings(new PathString("/dist"), new Uri("http://localhost:55555")));

然后将其添加到Startup.Configure:

app.UseMiddleware<DevProxyMiddleware>();

此后,所有类似http://localhost:xxxx/dist/sample.js的GET请求都将重定向到http://localhost:55555/dist/sample.js

这很好,它适用于两种情况:自托管和IISExpress托管应用程序。