Play Framework: разделенные маршруты в нескольких файлах без подпроектов
Мой игровой проект массивный, а файл маршрутов - около 1 Мб. Теперь, когда компиляция scala, у меня есть исключение "Слишком большой код метода" из-за маршрутизации и обратной маршрутизации scala файлов, созданных из файла маршрутов (также больших).
Итак, мне нужно разбить файл маршрутов без подпроектов. В самом деле, я не могу разделить мой проект на подпроекты, потому что его компоненты взаимозависимы.
Я попробовал 2 метода:
-
Я добавил новый файл conf, называемый technical.routes, добавляет некоторые маршруты внутри, удаляет те же маршруты из "маршрутов" и импортирует файл с помощью "- > technical.Routes",
Все компилируется, у меня нет моего предыдущего исключения, но что-то не так, потому что когда он прекращает компиляцию, он начинается снова и снова... и никогда не заканчивается.
-
Я добавил новый файл conf, называемый technical.routes, добавляет некоторые маршруты внутри, удаляет одни и те же маршруты из "маршрутов", но вместо импорта в мой основной файл маршрутов я добавил его в файл conf: "application.router =" routes, technical.routes "".
Но он не работает, потому что здесь должен быть объявлен только один маршрут.
Как это сделать, пожалуйста?
Ответы
Ответ 1
Ну, первый метод работает. Я начал с нуля, и это сработало. Я сделал чистую команду перед командой компиляции. Похоже, что старые скомпилированные файлы стали причиной моей проблемы.
Будьте осторожны с тем, что в файлах маршрутов нельзя совместить имена пакетов. Например. в этом примере файл technical.routes
содержит все маршруты в controllers.technical
, а файл основных маршрутов не может содержать никаких маршрутов в пакете controllers.technical
.
conf/routes
Содержание:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
-> /technical technical.Routes
GET / controllers.Dashboard.index()
conf/technical.routes
Содержание:
# Routes
# ~~~~
GET / controllers.technical.App.index()
Ответ 2
Если ваше имя файла - technical.routes,
включая файл, укажите технические. Routes (caps).
Параметр after → является префиксом url, поэтому для доступа к любому URL-адресу файла technical.routes вам нужно добавить префикс.
http://127.0.01/ технический/{определенный url в файле technical.routes}