2017-08-30 3 views
0

Je souhaite traiter un fichier statique à partir d'un contrôleur Scala Play. Je cherche quelque chose qui me permettrait de faire quelque chose comme cet exemple ci-dessous.Scala Play 2.5 Classe de contrôleurs pour le service HTML statique

REMARQUE: cela ne fonctionne évidemment pas. Il est très possible que je regarde le problème de la mauvaise façon, je ne veux cependant pas rediriger vers la 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) 
} 

Répondre

1

Vous pouvez simplement utiliser la Assets et retourner le contenu via ce. Vous pourriez avoir à modifier le chemin si:

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

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

} 

Plus d'informations peuvent être trouvées dans la documentation: https://www.playframework.com/documentation/2.5.x/AssetsOverview#The-Assets-controller

Notez également que vous pouvez mapper un itinéraire à vos actifs au lieu de référencer statiquement le fichier du contrôleur , comme ceci:

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

+0

la '.Appliquer (demande)' est ce que je manquait! Merci – codeCruncher