2016-07-06 2 views
1

dotNet 핵심 프로젝트를 사용하여 Angular2 응용 프로그램을 호스팅하고 있습니다. 깊은 링크 URL에 문제가 있습니다.dotNet 코어를 사용한 단일 페이지 응용 프로그램의 깊은 연결

예를 들어 처음에 http://localhost:54675/app/dashboard으로 이동하면 앱/대시 보드에서 제공 할 것이 없으므로 404 오류가 발생합니다. index.html (각도 응용 프로그램)을 실제로로드 한 다음 라우팅을 통해 앱/대시 보드로 옮기고 싶습니다.

404가 표시되고 URL에 확장자가없는 경우 아래 코드를 사용하여 index.html로 리디렉션합니다. http://localhost:54675/app/repairReturnListing;filter=%7B%22Status%22:[%22AWP%22]%7D

내 if 문이 확장자를 가진 요청을 무시하고 Path.HasExtension이 경로에 던져 경우 ArgumentException : 나는 같은 JSON을 포함하는 매개 변수를 사용하여 라우팅을 때

app.Use(async (context, next) => 
      { 
       await next(); 

       if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value)) 
       { 
        context.Request.Path = "/index.html"; 
        await next(); 
       } 
      }); 

이 작동하지 않습니다. 경로는 서버 측에서 이것을 해결 :

"/ 애플리케이션/repairReturnListing, 필터 = {\"상태 \ "는 [\"AWP ​​\는 "]}"

제가 제거 ' HasExtension '상태가 발생하면 호스트하지 않는 맵 파일을 찾기 위해 콘솔 오류가 발생합니다. 이처럼 :

는 SourceMap을 구문 분석하지 못했습니다 http://localhost:54675/lib/js/rxjs/operator/timeout.js.map

내가 네트워크 탭에서 이러한 오류를하지 않습니다. 나는 이것이 디버깅을 위해 사용 된 것이라고 생각한다.

내 angular2 앱은 HTML5 라우팅을 사용합니다. 저는 고정 파일을 사용하여 angular2 어플리케이션을 제공합니다. 몇 가지 구성 데이터를 반환하는 하나의 webApi 컨트롤러가 있습니다. 나머지 데이터는 다른 webApi 프로젝트에서 반환됩니다.

404에서 대기 중이고 리디렉션이 해결사처럼 보이고 작동하지 않는 것 같습니다. 이 작업을 수행하는 가장 좋은 방법에 대한 제안이 있으십니까?

답변

관련 문제