Play Framework 2 Scalaコントローラーから静的ファイルを提供するための推奨される方法は何ですか?
このファイルは私のアプリケーションにバンドルされているため、ファイルシステムを絶対的にハードコーディングすることはできません/path/to/the/file
。その場所は、Playアプリがインストールされている場所によって異なるためです。
ファイルはpublic/dirに配置されますが、app / asset /には配置されません。これは、Playにファイルをコンパイルさせたくないためです。
(単にそのファイルにルートを追加しない理由は、そのファイルにアクセスする前にログインする必要があるためです。そうしないと、役に立ちません。)
これが私がこれまでに行ったことですが、これは私の本番サーバーで壊れます。
object Application ...
def viewAdminPage = Action ... {
... authorization ...
val adminPageFile = Play.getFile("/public/admin/index.html")
Ok.sendFile(adminPageFile, inline = true)
}
そして私のroutes
ファイルには、次の行があります。
GET /-/admin/ controllers.Application.viewAdminPage
問題は、本番サーバーでこのエラーが発生することです。
FileNotFoundException: app1/public/admin/index.html
提供するファイルを指定するために、Play.getFile
andではなく他の方法はありますか?OK.sendFile
それは生産を中断することはありませんか?
(私のアプリはにインストールされ、 (なしで)/some-dir/app1/
から開始します—代わりにアプリを開始した場合、おそらくすべてが機能します。しかし、コントローラー内から静的ファイルを提供するために、どのように「すべき」かを知りたいです。 ?アプリケーションをどこから開始したかに関係なく、すべてが本番サーバーでも常に機能するようにします)/some-dir/
app1/
/some-dir/app1/