私は遊びを持っています!Web クライアントが表示する視覚化プロセスの一部として .png 画像ファイルを生成するアプリケーション。書き込みパスが正しく設定されていると思っていましたが、DEV モードでしかテストしていませんでした。プロダクション モードに切り替えると、Web クライアントは正しい場所からファイルを取得しようとしますが、Java コードがファイルを正しい場所に書き込めなくなります。
基本的に DEV では、書き込みパスは次のようになります。
project/application/public/images/image.png
本番環境では、書き込みパスは次のようにする必要があります。
project/application/target/scala-2.10/classes/public/images/image.png
ファイルの書き込み場所を指定するために、次のコードを収集しました。
//Set up paths correctly regardless of where the application is running
String basePath = Play.application().path().getPath();
String fullPath = basePath + "/public/images/image.png";
まあ、私が何か他のことをいじっていない限り、期待どおりに機能していません.DEVと本番でパスに違いはありません。それは常に次のようになります。
project/application/public/images/image.png
さまざまな投稿 ( Play! Framework 2.0 paths - play run vs play startなど) では、本番バージョンの .conf ファイルでパスを指定することが提案されています...そして、それを使用して play アプリケーションを起動する必要があります...しかし、正直なところ、私が投稿したコードのいくつかの変形がうまくいかないという何らかの理由がありますか?
編集: public/ フォルダー内のすべてのアセットが .jar ファイルにコンパイルされるため、動的に生成されたファイルは一般に返されないため、これが実際に期待どおりに機能しない可能性があります。