grails - 基于子域的项目和链接

Ric*_*oll 5 subdomain grails url-mapping

我正在尝试开发一个具有"root"内容的grails应用程序(例如www.mydomain.com/about),但也将支持基于请求的子域的"项目"; 例如myproject.mydomain.com> www.mydomain.com/myproject.作为第一遍,我有以下URL配置:

"/$controller/$action?/$id?" {
 ...
}

"/$project/$controller/$action?/$id?" {
    constraints {
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,主要的缺点是$ project变量必须手动注入每个链接(繁琐而不是DRY):

<g:link controller="foo" action="bar" params="${[project: params.project]}">link</g:link>
Run Code Online (Sandbox Code Playgroud)

有没有办法自动将$ project参数注入所有链接(如果存在),还是有更好的方法来解决这个问题?

fab*_*474 1

基本上,您可以创建一个grails 插件,它将向控制器注入一个新project参数,该参数的值基于自定义 TagLib <g:project bean="myproject"/>(例如)

它将强制您在项目的每个 gsp 页面上定义此 tagLib,但它仍然比每个链接更干燥。

希望能帮助到你,

法比安.