Как гнездить URL плагинов?
-
11-12-2019 - |
Вопрос
Я хотел бы создать «оболочку» проекта Grails, который ходит функциональные возможности в плагинах, с URL-адресами, разделенными именем плагина.
Так что URL-адреса для плагина /shell/blog/viewBlogPost
Но то, что я на самом деле вижу, это все контроллеры плагинов ведут себя как если бы они являются частью самого проекта оболочки: /shell/viewBlogPost
Есть ли способ объявить, что контроллеры плагина блога будут доступны только под траекторию /blog
в URL?
Решение
Похоже, плагины Grails не могут это сделать.Проблема в том, что им не хватает инкапсуляции и композиционности, что приводит к артефактным конфликтам:
- .
- маршрутизация URL из плагинов просто сливается вместе и не может быть вложена в наложение
- контроллеры не имен
- Услуги не называются пространственному пространству
Я открыл проблему: Grails-9300
The Grails Team имеет предварительные планы для решения этого в 2.2,Используя имя плагина в качестве пространства имен для артефактов.
Другие советы
Да, ваши плагины могут зарегистрировать отображения URL, как и остальная часть приложения «Оболочка».
Вы можете объявить URLMAppings в плагине, создав файл с именем, заканчивающимся в URLMAppings в своем плагине (E.g. BlogPluginUrlMappings.groovy
), и они будут объединены в URLMAppings основного приложения.Вы можете настроить отображения, начиная с /blog/
, чтобы направить на контроллер плагина.