如何在 Grails 中创建可重用的布局和脚手架模板 3.x

How to create reusable layouts and scaffolding templates in Grails 3.x

我对 Grails 还很陌生,很难找到这方面的信息。我来自 CakePHP,在那里你可以轻松地创建一个插件来为你的应用程序设置主题,我正在尝试在 Grails 中复制这种设置。

我想创建可重复使用的布局和脚手架模板,以便我使用 Grails 创建的所有应用程序都具有共同的外观和感觉。我已经在一个 Grails 应用程序中成功定制了布局和脚手架模板,并且正在探索将其打包到一个可以导入另一个项目的插件中,但我还没有成功完成这项工作(我确实打包了插件并将其导入到另一个项目中但是我似乎无法弄清楚如何从应用程序访问插件的布局和脚手架模板。

实现此目标的最佳方法是什么?将其打包为插件是个好主意,还是我应该简单地覆盖 Grails 的默认主布局并在每个项目中导入我自己的脚手架模板?

如果走插件路线是个好方法:

  1. 如何应用我的插件布局和脚手架模板 申请
  2. 我想在插件中创建一个 "help page" 可从主应用程序访问(仅限开发人员)。这个页面会 使我能够确认布局工作正常并且会 也提供其他开发者使用此插件的说明 如何使用插件的模板。如何访问网页 通过我的 Grails 应用程序从插件?

如果插件不可行,您有什么建议?

是的,插件是个不错的选择。我将简单地引用 documentation:

When a plugin provides a controller it may also provide default views to be rendered. This is an excellent way to modularize your application through plugins. Grails' view resolution mechanism will first look for the view in the application it is installed into and if that fails will attempt to look for the view within the plugin. This means that you can override views provided by a plugin by creating corresponding GSPs in the application's grails-app/views directory.

For example, consider a controller called BookController that's provided by an 'amazon' plugin. If the action being executed is list, Grails will first look for a view called grails-app/views/book/list.gsp then if that fails it will look for the same view relative to the plugin.

基本上,您可以像访问应用程序本身一样访问插件的视图。