Ну, это не задокументировано, поэтому я не уверен, намеренно ли это возможно или нет, но я нашел способ сделать эту работу. Обратите внимание, однако, что это недокументированная функция, может означать, что она непреднамеренная, и, следовательно, может сломаться в будущих версиях игры.
Вы можете достичь желаемого, используя следующую строку в вашем файле маршрутов.
%{ if (play.mode.isDev()) }%
Я создал тестовое приложение с парой действий
public class Application extends Controller {
public static void index() {
render();
}
public static void noDev() {
renderText("NoDev");
}
public static void noProd() {
renderText("NoProd");
}
}
Затем я добавил следующее в мой файл маршрутов
# Home page
GET / Application.index
# Ignore favicon requests
GET /favicon.ico 404
# Map static resources from the /app/public folder to the /public path
GET /public/ staticDir:public
%{ if (play.mode.isDev()) }%
GET /route1 Application.noDev
GET /route2 Application.noDev
GET /route3 Application.noDev
* /{controller}/{action} {controller}.{action}
%{ if (play.mode.isProd()) }%
GET /route4 Application.noProd
GET /route5 Application.noProd
GET /route6 Application.noProd
* /{controller}/{action} {controller}.{action}
Итак, вы можете видеть, что с помощью простого оператора if он выполнит следующую группу маршрутов только в этом режиме. Оператор if закончится, когда будет найден следующий оператор if.
Если в режиме Dev вы попытаетесь получить доступ к route4, вы не сможете получить к нему доступ, и вы увидите страницу RouteNotFound, показывающую, что доступны маршруты, которые вы определили только для Dev.