2017-01-03 4 views
0

내 앱에 2 개의 참여 앱이 있습니다. asp.net-WebApi 및 angular2-clientsite-app.클라이언트 라우팅이 시작되는 .NET WebApi에게 알리기

IIS 서버에서 2 개의 웹 사이트를 2 개 만들고 라우팅 문제가 있습니다.

의 URL의 2 개 웹 사이트로는 다음과 같습니다

WebApi : http://testurl.com/api/

Angular2 : 나는 나를 예를 들어이를 위해 방문 할 수있는 일반적인 각도 라우팅을 구현 내 anuglar2 응용 프로그램에 지금

http://testurl.com/ui/ 링크 : http://testurl.com/ui/search/result/562335

메인 사이트로 이동하면 쉽게이 링크를 클릭 할 수 있지만 외국 사용자가 해당 리를 복사하면 nk를 공유하고 친구와 공유하고 링크를 클릭하면 내 사이트를 방문하기 시작합니다. IIS 서버가 알려 주면 링크가 끊어집니다 ...

방문 허용을 위해 web.config 파일을 편집하려면 어떻게해야합니까? 직접 링크?

도움을 주신 고급 사용자 감사합니다.

답변

0

내 문제는 아주 쉽게 해결할 수 있습니다.

라우팅 파일 "app.routing.ts"에서 라우팅의 ExtraOptions에 매개 변수 useHash : true를 추가하면됩니다. IIS가 세그먼트 구분 기호 '#'를 사용해야 웹 사이트를 제공 할 때까지 인식 할 수 있기 때문입니다 . # IIS가 알고 나면 나머지 URL은 client-app에 속합니다. 자동

export const appRoutes: Routes = [ 
    { path: '', component: Search }, 
    { path: 'login', component: Login }, 
    { path: 'index.html', component: Search }, 
    { path: 'searchRooms', component: Search }, 
    { path: 'searchRooms/inquire', component: Search }, 
    { path: 'searchRooms/reserve', component: Search }, 
    { path: 'searchRooms/authCatcher', component: Search }, 
    { path: 'searchRooms/redirect', component: Search }, 
    { path: 'searchRooms/scheduler', component: Search }, 
    { path: 'searchRooms/scheduler/:roomId', component: Search }, 
    { path: 'inquire', component: Inquire }, 
    { path: 'register', component: Reserve }, 
    { path: '**', component: NotFound } 
]; 

export const appRoutingProviders: any[] = [ 

]; 

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, {useHash: true}); 

지금 각도 변경 모든 경로 : 로컬 호스트 : 8080/검색 로컬 호스트가된다 : 이제이 (코드의 마지막 줄에주의)과 같은 8080/#/검색 그렇게 정확히 IIS는 경로 후 알고 세그먼트 구분 기호 '#'은 그에게 멘션이 아니며 클라이언트에게 제공됩니다.

  1. 은 web.config 파일에 URL-한다 RewriteRule 만들기 :

    는이 문제를 해결하기 위해이 다른 가능성이 있습니다. 여기서 문제는 브라우저가 외부에서 정확히 하나의 사이트 (첫 번째 앵글 사이트) 만 게재 할 수 있다는 것입니다. 외부에서 특정 각도의 사이트로 이동하려면이 작업을 수행 할 수 없습니다.

  2. IIS에서 오류 페이지 404 변경 (약간 hackish) :이 솔루션에서 IIS에 오류 페이지는 각도 응용 프로그램이라고 말할 수 있습니다. 사용자가 제공 한 링크를 제공 할 수 없다면 오류 페이지와 각도로 URL을 수신하고 올바른 사이트로 라우팅 할 수 있습니다. 내 솔루션에도 불구하고

최고의

것으로 입증되었습니다