2017-11-06 2 views
0

UI 용 Angular 및 node.js (IIS 7.5에서 실행)를 사용하는 응용 프로그램을 가지고 있으며 모든 끝점 호출을위한 .NET Web API가 있습니다.각도 라우팅 먼저 그렇지 않으면 MVC 라우팅

API가 Visual Studio/IIS Express 및 ng serve을 통해 UI를 실행하는 경우 각도 라우팅이 예상대로 작동하며 API 라우팅이 예상대로 작동합니다. 물론, 그들은 두 개의 별도 포트에서 실행 중입니다.

목표는 단일 IIS 웹 사이트 및 불행히도 단일 응용 프로그램 풀에 배포하는 것입니다.

이 API의 UI에 대한 http://www.mycoolapplication.comhttp://www.mycoolapplication.com/api의 URL을 감안할 때, 어떻게 apiapi의 모든 아이를 일치 아무것도에 대한 라우팅을 무시하는 각도 얻으려면?

나는 Routes 모듈을 통해 갈거야, 그리고 path 객체에 무언가를 추가 할 수 있도록 싶지만, 는 각도 라우팅 테이블에서 뭔가를 제외 달성하기 위해 무엇이든이있는 것은 아니다.

답변

1

프런트 엔드 응용 프로그램 (index.html이있는 폴더)에 web.config을 넣으십시오. api/*를 제외한 모든 요청을 처리합니다.

<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="API Rule" stopProcessing="true"> 
      <match url="^(api)(.*)$" /> 
      <action type="None" /> 
     </rule> 
     <rule name="Angular" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="/" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 
+0

완벽하게 작업 한 @maxim 도움에 감사드립니다. 어떤 이유로,이 시나리오에서 라우팅을 위해 web.config가 작동하지 않을 것이라고 생각했습니다. API 규칙은 이미 web.config에있는 Angular 규칙의 "before"이므로 구성은'rewrite' 규칙을 순서대로 처리해야합니다. – rcastagna