java - Juega Framework @ routes.Assets.at Error de compilación
playframework java-8 (1)
De acuerdo, para resumir la solución: Play te permite servir tus activos de dos maneras diferentes. El anticuado y el nuevo método de huellas dactilares introducido con sbt-web. En cualquier caso, asegúrese de utilizar la llamada correcta en sus archivos de vista:
Activos de huellas dactilares
Esta es la forma recomendada de servir activos en juego. Los activos con huellas dactilares utilizan una estrategia agresiva de almacenamiento en caché. Puedes leer más sobre este tema aquí: https://playframework.com/documentation/2.4.x/Assets
configuración de rutas:
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
Asegúrese de que el tipo de file
esté indicado como Asset
llamada en vistas:
@routes.Assets.versioned("an_asset")
Activos anticuados
Este es básicamente el método utilizado antes de la introducción de sbt-web.
configuración de rutas:
GET /assets/*file controllers.Assets.at(path="/public", file)
llamada en vistas:
@routes.Assets.at("an_asset")
Estoy usando Play 2.4.0 y he estado tratando de seguir el tutorial desde la página principal: https://playframework.com/ que es para Play 2.3 y después de resolver un par de cuestiones relacionadas con los cambios en el ORM de Ebean desde versión 2.3 a 2.4, estoy atascado con el siguiente error:
Compilation error
value at is not a member of controllers.ReverseAssets
Mi 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>
}
Y mi archivo de 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)
Tengo este mismo ejemplo que funciona bien con Play 2.3.9
Y no puedo ver nada diferente sobre el trabajo con activos públicos en los documentos para el 2.4.0: https://www.playframework.com/documentation/2.4.0/Assets
Por lo que cualquier ayuda se agradece.