Play Framework @routes.Assets.at Ошибка компиляции
Я использую Play 2.4.0, и я стараюсь следовать руководству с главной страницы: https://playframework.com/
который для Play 2.3 и после решения пары вопросов об изменениях в Ebean ORM с версии 2.3 до 2.4, я застрял со следующей ошибкой:
Compilation error
value at is not a member of controllers.ReverseAssets
Мой 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>
}
И мой файл 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)
У меня есть тот же пример, который работает нормально с Play 2.3.9
И я не вижу ничего похожего на работу с публичными активами в документах для 2.4.0: https://www.playframework.com/documentation/2.4.0/Assets
Итак... любая помощь будет оценена.
Ответы
Ответ 1
Хорошо, чтобы подвести итог решению: Play позволяет вам обслуживать ваши активы двумя разными способами. Старомодный и новый метод отпечатков пальцев, введенный с помощью sbt-web. В любом случае убедитесь, что вы используете правильный вызов в своих файлах просмотра:
Отпечатки пальцев
Это рекомендуемый способ обслуживания активов в игре. Фингерпринтированные активы используют агрессивную стратегию кэширования. Вы можете узнать больше об этой теме: https://playframework.com/documentation/2.4.x/Assets
маршрут config:
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
Убедитесь, что тип file
указан как Asset
вызов в представлениях:
@routes.Assets.versioned("an_asset")
Старомодные активы
Это в основном метод, используемый до внедрения sbt-web.
маршрут config:
GET /assets/*file controllers.Assets.at(path="/public", file)
вызов в представлениях:
@routes.Assets.at("an_asset")