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,有時你想隱藏它,所以這些選項都是你自己選擇的。