2017-08-30 5 views
0

Ich möchte eine statische Datei von einem Scala Play-Controller bereitstellen. Ich suche nach etwas, das mir erlauben würde, etwas wie dieses Beispiel unten zu machen.Scala Play 2.5 Controller-Klasse für statische HTML

HINWEIS: Dies funktioniert offensichtlich nicht. Es ist durchaus möglich, dass ich das Problem suchen bin in der falschen Art und Weise, ich aber will nicht die 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) 
} 

Antwort

1

Sie können nur die Assets verwenden umleiten und die Rück Inhalt über das. Sie könnten den Weg allerdings zwicken:

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

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

} 

Weitere Informationen finden Sie in der Dokumentation: https://www.playframework.com/documentation/2.5.x/AssetsOverview#The-Assets-controller

Beachten Sie auch, dass Sie eine Route zu Ihrem Vermögen abbilden können statt statisch Verweis auf die Datei aus dem Controller , etwa so:

GET/assets/* controllers.Assets.at (path = "/ public", Datei)

+0

die '.apply (Anfrage) Datei' ist, was ich fehlte! Vielen Dank – codeCruncher