在VS2019中使用ASP CORE和webpack:如何配置IIS Express将js/css请求代理到webpack devserver?

3

像这样的代码

<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 返回这些文件时。

有一篇文章介绍了如何 "切换" 配置并将所需的端口放入 <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 看起来那些使用VS+webpack/devserver的开发人员更喜欢配置webpack devserver以代理html/json/images/fonts请求至IISExpress(从另一个端口解决相同问题)。为什么呢?
1个回答

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>();

之后所有的GET请求,如http://localhost:xxxx/dist/sample.js将被重定向到http://localhost:55555/dist/sample.js

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接