2017-08-30 106 views
0

我想從Scala Play控制器提供靜態文件。我正在尋找一些能夠讓我做下面這個例子的東西。Scala Play 2.5提供靜態HTML的控制器類

注意:這顯然不起作用。 這是非常可能的,我看的方式是錯誤的問題,但是我不希望重定向到app.html

def loadApplication(): EssentialAction = Action.sync { request => 
    val contents = Assets.contentsOf("/public/assets/app.html") //This doesnot return the contents, but that is what I want 
    Ok(contents) 
} 

回答

1

您可以只使用Assets,並通過返回的內容。您可能需要調整,雖然路徑:

class MyController @Inject() (assets: Assets) extends Controller { 

    def loadApplication(): Action[AnyContent] = Action.async { request => 
    assets.at("/public/assets/", "app.html").apply(request) 
    } 

} 

的更多信息可以在文檔中找到:https://www.playframework.com/documentation/2.5.x/AssetsOverview#The-Assets-controller

另外請注意,您可以映射到你的資產的路線,而不是靜態地從控制器中引用文件,像這樣:

GET /資產/ *文件controllers.Assets.at(PATH = 「/公衆」,文件)

+0

的'。適用(請求)'是我失蹤!謝謝 – codeCruncher