0

劇中のフォルダにファイルを保存しています!プロジェクトと私はパスについて質問があります。私のソリューションは機能していますが、ソリューションは最適ではないと思います。

私の現在の解決策:

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;
    }
}

私の質問:

「playrun」と「playstart」を実行するとパスが異なるので、このようにします。このif-blockの使用を回避する方法はありますか?構成ファイルのproductionPath文字列に依存したくありません。

4

1 に答える 1

2

confファイルを使用するのがそれを行う方法です。本番環境に別のconfファイルを使用するだけで、コードに大量のif(isProd ...)チェックを行う必要はありません。

Play 2には、ドキュメント代替構成ファイルの指定セクション)で説明されているように、代替/拡張構成ファイルを使用する機能があります。さらに、簡単なbashスクリプト(またはWindowsでは.batファイル)を作成して、毎回代替ファイルを指定しなくても、アプリケーションを目的のモードで起動できます。

于 2012-12-06T14:56:22.453 に答える