【发布时间】:2014-11-02 03:36:33
【问题描述】:
版本:
- 玩2.3.4
- sbt 0.13.1
- scala 2.11.2
我已按照documentation on playframework.com 对公共资产启用指纹识别,但对routes.Assets.versioned 的调用从未生成带有摘要哈希的版本化文件名。
build.sbt 中的相关行:
scalaVersion := "2.11.2"
pipelineStages := Seq(rjs, digest)
project/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>
我没有收到编译器错误。指纹只是“不起作用”。我假设我遗漏了一些简单的东西,但我看不到它。
其他说明:
- 在项目的根目录中运行
find . -name "*.js"显示没有在开头附加摘要的文件,如文档所示 - 我已经运行
sbt clean dist来生成生产模式版本,并且行为是相同的
谁能给点建议?
谢谢!
注意:我已经开始查看 target/src_managed/main/routes_reverseRouting.scala 中生成的类来调试生成的 versioned 方法,但这对于相当简单的事情来说似乎有点过头了。
【问题讨论】:
标签: scala playframework playframework-2.3