2014-12-03 3 views
4

Я пытаюсь заставить Play2 играть хорошо с AngularJS. Play2 не будет знать AngularJS, потому что я использую Yeoman для frontend dev.Play2 Перенаправление для AngularJS

Единственная часть, которую я хочу получить, это переписать URL-адрес, если пользователь обновится в HTML5MODE. Я имею в своем маршруте файл в последней строке

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") 
} 

Но я предпочитаю, чтобы держать его очень ясно в файле маршрутов, как в Ruby On Rails, я могу просто сделать

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

Не могли бы вы поделиться со мной ваши фокусы и лучшие практики?

Благодаря

ответ

0

Вы, вероятно, лучше делать это переписывание в Apache или Nginx - URL веб-сервера переписывания возможности гораздо более надежными, чем игра. См. the Play documentation о том, как настроить веб-сервер перед воспроизведением, а затем проверить документы для веб-сервера, как настроить нужную переписывание.

+0

И что лучше всего работает с игровым маршрутизатором? – Scipion

Смежные вопросы