这就是挑战:根据输入的URL,我想显示特定的登录页面,并在登录后根据用户的身份显示特定的用户体验。
例如,www.abc.com和www.xyz.com都指向提供共同门户体验的单个Grails实例。如果用户通过www.abc.com到达,我想显示带有登录表单的ABC启动页面。如果用户通过www.xyz.com到达,我想显示带有登录表单的XYZ启动页面。
用户登录后,我需要保留由传入URL确定的原始“品牌”上下文。例如,即使所有用户共享了所有GSP, Controller 等,ABC用户也将获得他们自己的CSS,资源束(或条目)等,并且该用户的视觉体验将与XYZ用户截然不同。
这可能吗?还是我需要分支应用程序代码库并托管多个独立的门户网站实例?
最佳答案
http://www.grails.org/Views+and+Layouts
看一下,我认为它可以解决您90%的问题。每个域都有特定的布局。为每个 View 加载布局,并且可以帮助定义外观
您可以根据网址在过滤器中设置变量,然后可以在布局中读取该变量
http://www.grails.org/Filters
class MyFilters {
def filters = {
myFilter(controller:'*', action:'*') {
after = {
if (request.requestURI == "xyz") {
session.layout = "layout1.gsp"
} else {
session.layout = "layout2.gsp"
}
}
}
}
}
关于Grails品牌应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3621115/