0

Play フレームワーク 2.1.0 を使用しており、ファイルをplay-app/uploadフォルダーにアップロードします。

次に、実行play 'start -Dhttp.port=80'してサーバーを起動します。

しかし、ファイルをplay-app/uploadフォルダにアップロードすると、すぐにアクセスできません。

サーバーを停止して再起動すると、ファイルにアクセスできます。

どうすればこの問題を解決できますか? どうもありがとう。

ps、私は以下のようにルーティング/uploadします:

GET     /upload/*file               controllers.Assets.at(path="/upload", file)

静的ファイルが一度ロードされる可能性はありますか? どうすれば解決できますか?

4

3 に答える 3

1

最後に、コントローラーにアクセスメソッドを追加して解決したこと:

public static Result view(String filename) {
    File file  = new File(Play.application().path().getAbsolutePath() + "/upload/" + filename);
    return ok(file);
}

次に、ルート conf を変更すると、メソッドでファイルにアクセスできるようになります。

ところで、2.0 未満の play フレームワークを使用している場合は、以下を使用できます。

    renderBinary(file, ContentType);
于 2013-03-29T16:52:04.703 に答える
1

できれば、アプリケーションのフォルダの外にアップロード フォルダを作成し、そのフルパスをのよう/home/navins/upload-folder/に追加するとapplication.conf、いつでもアクセスできるようになります。再起動中。

于 2013-03-27T09:39:57.290 に答える
1

Remote assets必要なのは、一種のコントローラーを定義することだと思います。基本的に、ファイルがアップロードされたら、アプリケーションのフォルダー外にあるフォルダーに配置します。次に、アクセスできるコントローラーを使用します。以下に例を示します: http://www.jamesward.com/2012/08/08/edge-caching-with-play2-heroku-cloudfront

ここで、James Ward は、クラウドフロントに保存されているアセットにアクセスするためのコントローラーを作成します。必要なことは、同様のコントローラーを作成し、「コンテンツ URL」を「アップロードされたファイル ディレクトリ」への絶対パスに置き換えることです。

于 2013-03-29T09:35:45.093 に答える