Версии:
- play 2.3.4
- sbt 0.13.1
- scala 2.11.2
Я следил за документацией на playframework.com, чтобы активировать отпечатки пальцев на публичных активах, но вызовы routes.Assets.versioned
никогда не приводят имя файла с версией с хэшем дайджеста.
Соответствующие строки в файле build.sbt:
scalaVersion := "2.11.2"
pipelineStages := Seq(rjs, digest)
Соответствующие строки в проекте /plugins.sbt:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.4")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.5")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
Соответствующие строки в conf/routes:
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
И главный шаблон:
@(title: String, lang: String, cssClasses: String, bodyContents: Html)
<!DOCTYPE html>
<html lang="@lang">
<head>
<meta charset="UTF-8">
<title>@title</title>
<script type="text/javascript" src="@routes.Assets.versioned("javascript/components/main.js")"></script>
</head>
<body>
<div class="layout @cssClasses">
@bodyContents
</div>
</body>
</html>
Выход всегда:
<!DOCTYPE html>
<html lang="el">
<head>
<meta charset="UTF-8">
<title>[title]</title>
<script type="text/javascript" src="/assets/javascript/components/main.js"></script>
</head>
<body>
...
</body>
</html>
Я не получаю ошибок компилятора. Отпечаток пальца просто "не работает". Я предполагаю, что мне не хватает чего-то простого, но я не вижу его.
Другие примечания:
- running
find . -name "*.js"
в корне проекта не отображается файлов с дайджестом, добавленным к началу, так как в документации предлагается - Я запустил
sbt clean dist
, чтобы сгенерировать выпуск режима производства, и поведение такое же
Кто-нибудь может посоветовать?
Спасибо!
NB: я начал просматривать сгенерированный класс в target/src_managed/main/routes_reverseRouting.scala
для отладки сгенерированного метода versioned
, но это кажется излишним для чего-то довольно простого.