2016-09-02 2 views
0

방금 ​​asp.net 앱을 만들었으며 코스 페이지와 같은 다른 페이지에 대한보기를 가지고 있습니다.ASP.NET에서 AngularJS에 대한 URL 재 작성이 작동하지 않습니다.

IIS에서 로컬 호스트 : 50717을 실행하고 있습니다.

ng-view 태그가있는 routes.html 페이지가 있습니다. 처음에 코스보기로 이동하려면 다음을 입력하십시오 : localhost : 50717/routes.html #/courses. 그러나 나는 다만 수 있도록 재 작성 일부 URL을하고 싶어 : 로컬 호스트 : 내가 넣어 내 HTML 페이지의 머리에서

$locationProvider.html5Mode(true); 

: 50717/과정

그래서 내 JS 파일에 내가 넣어 지역 :

<rewrite> 
    <rules> 
    <rule name="RewriteRules" stopProcessing="true"> 
     <match url=".*"/> 
     <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> 
     <add input="{REQUEST_URI}" pattern="^/(api)" negate="true"/> 
     </conditions> 
     <action type="Rewrite" url="/" /> 
    </rule> 

    </rules> 
</rewrite> 
,536,913,632 : 내 web.config 파일에서

<base href="/" /> 

나는의 system.webServer의 XML 태그에이 코드에 넣어 10

내가 이동 : 로컬 호스트 : 50717/routes.html 내 링크를 클릭 < A HREF = "과정"> 과정 <을/그것은 로컬 호스트에 저를 얻을 >

: 50717/코스 잘. 이 코드는 URL 작성을 가능하게하는 코드를 제거 할 때도 잘 작동합니다.

404 오류가 발생하거나 localhost : 50717로 이동하려고 할 때 페이지를 다시로드하려고 시도 할 때만 routes.html 페이지 대신 기본 디렉토리로 이동한다고 생각하면됩니다.

심지어 나의 IIS에서 URL 재 작성을 설치 : http://www.iis.net/downloads/microsoft/url-rewrite

내가 "다운로드 URL 재 작성 모듈 2.0"에 가서 64 다운로드 링크를 클릭

하고 올바르게 다운로드 및 URL 재 작성을 볼 수 있었다 IIS의 기본 사이트에 대한 여기서 내가 뭘 할 수 있을까?

답변

0

"/routes.html"이 웹 사이트의 루트를 나타내는 경우 적절한 요청이있을 때마다 해당 파일의 내용이 응용 프로그램에 반환되도록해야합니다.

e.e. "/ Courses"를 호출 할 때 해당 URL에 해당하는 콘텐츠/경로/리소스가 없으므로 404가 표시됩니다. 반환 할 내용은 "/routes.html"의 내용이며 AngularJS 라우팅이 클라이언트 쪽을 다시 차지하도록합니다.

나는 다시 읽는 것이 좋습니다 AngularJS HTML5-mode; "/ #/Courses"와 "/ Courses"를 사용하는 것의 차이는 처음에는 보이는 것보다 더 중요합니다, reg. 경로 설정 방법.

+0

정보 주셔서 감사합니다. 정말 도움이되었습니다. 여기 내 새 Web.Config 파일입니다 : < ". *"일치 URL = /> – user3739190

+0

<규칙 이름 = "의 RewriteRules"stopProcessing = "진정한"> <조건 logicalGrouping = "MatchAll"> <추가 user3739190

+0

지금 무슨 일 내가 localhost를 다시로드 할 수 있다는 것입니다 : 50717/코스 잘을 – user3739190

관련 문제