2014-01-09 3 views

ответ

7

Да, это возможно. Объявите свои маршруты dev в conf/routes, но объявите свои производственные маршруты в conf/prod.routes. Затем, имеют конфигурацию производства файл, conf/prod.conf, и поместить его в нем:

include "application.conf" 

application.router = "prod.Routes" 

Теперь при запуске приложения в производстве, просто используйте:

path/to/myapp/bin/myapp -Dconfig.resource=prod.conf -Dhttp.port=... 
+0

Привет, Джеймс, спасибо за ваш ответ, который сработал хорошо. – reen

+1

Можно ли использовать этот метод, если оба файла маршрута определяют путь к одному и тому же методу (например, «GET/controllers.News.foo()»)? Я получаю 'ReverseNews уже определен как ошибка компиляции класса ReverseNews' ... –

0

Не из коробки. Но здесь у вас есть две идеи того, как можно достичь того же функциональность:

  • написать тонкую оболочку вокруг Assets.at, который смотрит на текущий окр и обрабатывает его по-другому, а затем просто звоню Assets.at с модифицированным путь
  • переопределение как маршрутизация выполняется в Global, это немного трудно сделать, если вы хотите продолжать использовать маршруты DSL как для файла прод и Dev маршрутов, как вы должны выяснить, чтобы получить их скомпилирован
1

Раствор выше работает хорошо, но средства вы дублируете маршруты, например нестатические ресурсы в файлах routes и prod.routes.

Если вы хотите сохранить один файл маршрутов, вы можете спуститься по дороге, которую предлагает johanandren. Я использую этот метод довольно успешно и опубликовал суть этого метода в https://gist.github.com/drcharris/2e3518b212adfa1b6a7f

+0

Обновленная версия ConfigurableAssets для PlayFramework 2.5 https://gist.github.com/cessationoftime/b304c13f810f9d52e32fbf6c778af3d9 – cessationoftime

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