Versionen:Wie richtet man Asset Fingerprinting in Play 2.3.4 ein?
- Spiel 2.3.4
- sbt 0.13.1
- scala 2.11.2
Ich habe die documentation on playframework.com gefolgt von Fingerabdrücken auf öffentlichen Vermögens zu ermöglichen, fordert jedoch zu routes.Assets.versioned
niemals einen versionierten Dateinamen mit einem Digest-Hash erzeugen.
Relevante Linien in build.sbt:
scalaVersion := "2.11.2"
pipelineStages := Seq(rjs, digest)
Relevante Zeilen in Projekt/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")
Relevante Linien in conf/Touren
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
Und die Hauptvorlage:
@(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>
Der Ausgang ist immer:
<!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>
ich keine Compiler-Fehler erhalten. Der Fingerabdruck "funktioniert einfach nicht". Ich nehme an, ich vermisse etwas Einfaches, aber ich kann es nicht sehen.
Andere Anmerkungen:
find . -name "*.js"
in der Wurzel des Projekts ausgeführt zeigt keine Dateien, die eine an den Anfang beigefügten verdauen, wie die Dokumentation- schlägt vor, ich
sbt clean dist
laufen habe einen Produktionsmodus zu erzeugen, Freigabe und das Verhalten ist das gleiche
Kann jemand beraten?
Vielen Dank!
NB: Ich habe angefangen, durch die generierte Klasse in target/src_managed/main/routes_reverseRouting.scala
zu suchen, um die generierte versioned
Methode zu debuggen, aber das scheint wie Overkill für etwas, das ziemlich einfach ist.
Ich habe aktualisiert, Aktivator zu verwenden, der 0,13.5 umschließt und das Ergebnis ist das gleiche. Ich sehe .md5-Dateien, aber (1) keine der Javascript ist Hashed, und (2) sbt-Digest ist Hash-vorkompilierte .scss-Dateien anstelle der kompilierten .css-Dateien (wir verwenden sbt-sass-Plugin - die Ich stelle fest, dass das Problem mit CSS verursacht wird, aber es sollte nicht Auswirkungen auf Javascript haben). Die einzigen Dateien, die korrekt gehashed wurden, sind PNGs. – biegel
Activator verwendet 0.13.5, aber machen Sie Ihr Projekt? Überprüfen Sie 'project/build.properties'. Können Sie ohne das SASS-Plugin versuchen, vielleicht verursacht es das Problem? –
Es war das Sass-Plugin, es wurde erst vor ein paar Stunden gepatcht. Einzelheiten finden Sie unter https://github.com/ShaggyYeti/sbt-sass/pull/13. – biegel