J'utilise Play 2.4.0 et j'ai essayé de suivre le tutoriel de la page principale: https://playframework.com/ qui est pour Play 2.3 et après avoir résolu quelques problèmes concernant les changements dans Ebean ORM de la version 2.3 à 2.4, je suis coincé avec l'erreur suivante:
Compilation error
value at is not a member of controllers.ReverseAssets
Ma index.scala.html
:
@(message: String)
@main("Welcome to Play") {
<script type='text/javascript' src="@routes.Assets.at("javascripts/index.js")"></script>
<form action="@routes.Application.addPerson()" method="post">
<input type="text" name="name" />
<button>Add Person</button>
</form>
<ul id="persons">
</ul>
}
Et mon fichier routes
:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
GET / controllers.Application.index()
POST /person controllers.Application.addPerson()
GET /persons controllers.Application.getPersons()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
J'ai ce même exemple qui fonctionne bien avec Play 2.3.9
Et je ne vois rien de différent concernant le travail avec les actifs publics dans les documents pour le 2.4.0: https://www.playframework.com/documentation/2.4.0/Assets
Alors ... toute aide serait appréciée.
D'accord, pour résumer la solution: Play vous permet de diffuser vos ressources de deux manières différentes. L'ancienne méthode et la nouvelle méthode d'empreintes digitales introduites avec sbt-web. Dans les deux cas, assurez-vous d'utiliser le bon appel dans vos fichiers d'affichage:
Il s'agit de la méthode recommandée pour servir les ressources en jeu. Les ressources à empreintes digitales utilisent une stratégie de mise en cache agressive. Vous pouvez en savoir plus sur ce sujet ici: https://playframework.com/documentation/2.4.x/Assets
configuration des routes:
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
Assurez-vous que le type de file
est indiqué comme Asset
appel dans les vues:
@routes.Assets.versioned("an_asset")
Il s'agit essentiellement de la méthode utilisée avant l'introduction de sbt-web.
configuration des routes:
GET /assets/*file controllers.Assets.at(path="/public", file)
appel dans les vues:
@routes.Assets.at("an_asset")