2012-02-15 55 views
1

電梯有可能使用路由文件嗎?我希望能夠使用不同的配置(語言環境)部署我的應用程序。示例:我有兩個域「mydomain.com」和「mydomain.pl」,運行同一個應用程序。我想讓.pl網站擁有不同的網址,就像.com網站一樣。 (mydomain.com/imprint和mydomain.pl/somethingelse,都是路由到代碼中的一個文件)。電梯HTTP路由

謝謝!

回答

0

三個選項:

  1. 使用上電梯前的反向代理來處理重寫路徑和別名(Nginx的或Apache HTTP服務器就可以了)。

  2. 此添加到升降機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,有時你想隱藏它,所以這些選項都是你自己選擇的。