2014-12-03 8 views
4

Play2를 AngularJS로 멋지게 플레이하려고합니다. Yeoman을 frontend dev에 사용하기 때문에 Play2는 AngularJS에 대한 지식이 없습니다.Play2 리쥬 어링 AngularJS

HTML5MODE에서 사용자가 새로 고침 할 경우 URL을 다시 작성해야합니다. 내 노선의 마지막 줄에 파일이 있습니다.

GET /*path   controllers.Default.redirect(to = s"#!/$path") 

그러나 이것은 작동하지 않습니다. 우선 경로 파일에서 문자열 보간법을 사용하는 것은 $ path를 해결할 수 없으므로 허용되지 않습니다. 또한, #에서 문자열을 사용하면 오류가 발생합니다. 왜냐하면 #이 주석의 시작이기 때문입니다.

"#!"을 추가하기 위해이 경로에 대한 컨트롤러 동작을 만들 수 있습니다. 이 같은 경로 : 나는 레일에 루비처럼, 경로 파일에 매우 명확를 유지하는 것을 선호

GET /*path   controllers.Application.redirect(path: String) 

/* in Application controller */ 
def redirect(path: String) = Action { 
    Redirect(s"#!/$path") 
} 

하지만, 난 그냥 당신이 당신의 트릭 나와 함께 공유 할 수

get '/*path' => redirect("/#!/%{path}") 

을 수행 할 수 있습니다 모범 사례? 웹 서버의 URL 재 작성 기능을 훨씬 더 강력한 재생의보다 -

덕분에

답변

0

당신은 아마 아파치 또는 Nginx의이 다시 쓰기를 수행 더 낫다. Play 앞에서 웹 서버를 설정하는 방법은 the Play documentation을 참조한 다음 웹 서버의 문서에서 원하는 다시 쓰기를 설정하는 방법을 확인하십시오.

+0

Play 라우터의 모범 사례는 무엇입니까? – Scipion