ASP CORE и веб-пакет в VS2019: как настроить IIS Express для запросов прокси js / css на веб-пакет devserver? - PullRequest
3 голосов
/ 28 июня 2019

Код такой

<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, когда мне нужно вернуть эти файлы из веб-пакета devserver, который работает на другом порту.

Есть статья, как "переключать" конфигурации и "помещать" требуемый порт в ссылки <link> и <script>, но здесь должно быть гораздо проще проинструктировать IIS Express (или самостоятельно размещаться). Приложение ASP Core) для запросов прокси для css и js.

К сожалению, это не работает (не имеет никакого эффекта):

<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 голосов
/ 29 июня 2019

«Просто напишите промежуточное ПО, которое выполняет прокси»

решает.

Я создал для него пакет 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.

...