2012-12-20 5 views
1

나는 anglejs 앱에 html5 모드를 사용하도록 설정했습니다.레일스 angularjs html5mode webrick 또는 nginx 재 작성 규칙 어떻게 구성합니까?

IE8에서 응용 프로그램을 실행하려고 시도했지만 URL 앞에 #가 ​​붙어있는 것 같습니다! hashbang 모드

나는 현대적인 브라우저에서 응용 프로그램을 실행하려했는데 history api도 작동하는 것으로 보인다. 괜찮아.

하지만 두 브라우저에서 주소 표시 줄에있는 http://localhost:3000/notes을 직접 방문하면 webrick/rail 앱에서 라우팅 오류가 발생합니다. 각도가이 요청을 처리하고 처리한다고 생각했습니다. 기본적으로 응용 프로그램의 진입 점에 대한 모든 링크를 다시 작성해야,이 모드를 사용

는 서버 측에서 URL 재 작성이 필요합니다

나는 같은 각도 가이드는 말을 서버 측에서 NOT 설치 아무것도 (예 : index.html)

왜 webrick에서 경로 오류가 발생합니까? 그리고 만약 내가 어떻게 다시 도우미 작동 규칙을 다시 작성할 수 있습니까? 만약 내가 어디로 가야하고 각도 애플 리케이션은 어디서 라우팅 해야할지 모를 것입니다

그리고 내가 할 수 없다면 점프하고 싶습니다 http://localhost:3000/notes -> http://localhost:3000 (색인을 원하는 경우) "/ 메모"를 재작 성하면 생각 ... webrick에게 무엇을 어떻게 재 작성하는지 알려주십시오. 개발 환경에서 어떻게합니까?

고맙습니다.

답변

1

마치 / 경로 인 것처럼 /notes에 대해 동일한 데이터를 반환하도록 서버를 구성해야합니다. 리디렉션이 아닙니다 (이후 notes이 삭제됨). 기본적으로 다른 경로와 일치하지 않는 경우 리턴하는 포괄 경로가 필요합니다. 알려진 경로 (즉, /, /notes, /other 등)를 나열하거나 열거하고 모두 동일한 문서를 반환하도록합니다. 이 시점에서 각도는 경로를 감지하여 그에 따라 작동합니다.

+0

을 이해하고 답변 해 주셔서 감사합니다. 나는 정적 자산 (이미지, 스크립트 ..)을 제외한 모든 경로를 다시 작성해야한다고 가정합니다. 나는 그것을 고수하고 싶습니다 ... –

+0

오케이, 나는 승객과 nginx를 대신 사용했습니다. 이 다시 쓰기 규칙을 추가하면'^/(?! assets)/*/last;를 다시 작성합니다. '가 완벽하게 작동하는 것 같습니다. 나는 100 % 올바른 정규식인지는 모르겠지만 아무 것도없는 것보다는 낫다. –

+0

수정 :'재 작성 ^/(자산?)/마지막;' –