1
电梯有可能使用路由文件吗?我希望能够使用不同的配置(语言环境)部署我的应用程序。示例:我有两个域“mydomain.com”和“mydomain.pl”,运行同一个应用程序。我想让.pl网站拥有不同的网址,就像.com网站一样。 (mydomain.com/imprint和mydomain.pl/somethingelse,都是路由到代码中的一个文件)。电梯HTTP路由
谢谢!
电梯有可能使用路由文件吗?我希望能够使用不同的配置(语言环境)部署我的应用程序。示例:我有两个域“mydomain.com”和“mydomain.pl”,运行同一个应用程序。我想让.pl网站拥有不同的网址,就像.com网站一样。 (mydomain.com/imprint和mydomain.pl/somethingelse,都是路由到代码中的一个文件)。电梯HTTP路由
谢谢!
三个选项:
使用上电梯前的反向代理来处理重写路径和别名(Nginx的或Apache HTTP服务器就可以了)。
此添加到升降机Boot.scala:
LiftRules.statelessRewrite.prepend(NamedPF("PublicJobsRedirect") { case RewriteRequest( ParsePath("somethingelse" :: Nil, _, _, _), _, _) => RewriteResponse("imprint" :: Nil) })
val sampleTemplate = Templates("imprint" :: Nil) def sampleResponse : Box[LiftResponse] = for { req session.processTemplate(sampleTemplate, req, req.path, 200) case _ => Empty } } } yield { response } LiftRules.responseTransformers.append { case resp if resp.toResponse.code == 404 => sampleResponse openOr resp case resp => resp }
注:第一个选项会导致您对应用程序产生一整套外部规则,并且在开始时便宜且易于执行,但随着越来越多要维护的案例。第二个选项非常酷,但向用户公开了重定向路径,因此这导致我们选择第三个选项,在sintax中更复杂,但它不会将新网址公开给用户,url保持在Lift内部。有时候你想要公开新的url,有时你想隐藏它,所以这些选项都是你自己选择的。