2012-12-06 48 views
0

我將文件存儲到播放中的文件夾!項目和我有一個關於路徑的問題。我的解決方案正在工作,但我認爲解決方案是次優的。玩! Framework 2.0路徑 - 播放運行vs播放開始

我目前的解決方案:

public static String getStoragePath(){ 
    String pubDir = Play.application().configuration().getString("pathToFiles"); 

    if(Play.isProd()){ 
     String prodDir = Play.application().configuration().getString("productionPath"); 
     //prodDir variable is "target/scala-2.9.1/classes" 

     return Play.application().path().getAbsolutePath() + "/" + prodDir + "/" + pubDir; 
    }else{ 
     return Play.application().path().getAbsolutePath() + "/" + pubDir; 
    } 
} 

我的問題:

我不喜歡這樣,因爲路徑運行「玩跑」和「玩開始」的時候是不同的。 有沒有辦法避免使用這個if塊?我不想依賴於我的配置文件中的productionPath字符串。

回答

2

使用conf文件是實現它的方法。只需爲您的生產環境使用不同的conf文件,並且不需要在代碼中進行一堆if(isProd ...)檢查。

播放2具有使用替代/延伸配置文件作爲described in documentation能力(指定替代配置文件部分)。此外,您可以創建簡單的bash腳本(或Windows中的.bat文件)以期望的模式啓動應用程序,而無需每次指定替代文件。

+0

如果明天你的用戶數量增長了,你必須將你的應用程序部署到另一臺服務器上呢?如果要知道它是生產服務器的實例1還是實例2,你會添加一個額外的東西嗎?沒有清楚,你必須使用conf文件來解決這類問題。 –

+0

同意@Jakob,在不同的機器和/或模式下使用專用的附加conf文件是實現這一目標的最佳方式。 – biesior