我想创建一个 Grails 项目的“外壳”,该项目在插件中托管功能,URL 按插件名称分隔。
因此,Shell 项目中使用的博客插件的 URL可能如下所示:/shell/blog/viewBlogPost
但我实际上看到的是所有插件的控制器都表现得好像它们是 shell 项目本身的一部分:/shell/viewBlogPost
有没有办法声明博客插件的控制器只能在 /blog
URL 中的路径下访问?
我想创建一个 Grails 项目的“外壳”,该项目在插件中托管功能,URL 按插件名称分隔。
因此,Shell 项目中使用的博客插件的 URL可能如下所示:/shell/blog/viewBlogPost
但我实际上看到的是所有插件的控制器都表现得好像它们是 shell 项目本身的一部分:/shell/viewBlogPost
有没有办法声明博客插件的控制器只能在 /blog
URL 中的路径下访问?
似乎 Grails 插件无法做到这一点。问题是它们缺乏封装性和可组合性,导致工件冲突:
我打开了一个问题:GRAILS-9300
Grails 团队已经初步计划在 2.2 中解决这个问题,方法是使用插件名称作为工件的命名空间。
是的,您的插件可以像“shell”应用程序的其余部分一样注册 URL 映射。
您可以通过在插件中创建一个名称以 UrlMappings 结尾的文件(例如BlogPluginUrlMappings.groovy
),在插件中声明 UrlMappings,这些文件将合并到主应用程序的 UrlMappings 中。您可以设置从/blog/
路由到插件控制器的映射。