bie*_*gel 16 scala playframework playframework-2.3
版本:
我已经按照playframework.com上的文档来启用公共资产上的指纹识别,但调用routes.Assets.versioned永远不会产生带有摘要哈希的版本化文件名.
build.sbt中的相关行:
scalaVersion := "2.11.2"
pipelineStages := Seq(rjs, digest)
Run Code Online (Sandbox Code Playgroud)
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")
Run Code Online (Sandbox Code Playgroud)
conf/routes中的相关行:
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
Run Code Online (Sandbox Code Playgroud)
主模板:
@(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>
Run Code Online (Sandbox Code Playgroud)
输出总是:
<!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>
Run Code Online (Sandbox Code Playgroud)
我没有编译错误.指纹只是"不起作用".我想我错过了一些简单的东西,但我看不到它.
其他说明:
find . -name "*.js"如文档所示,在项目的根目录中运行时,没有显示在开头附加摘要的文件sbt clean dist生成生产模式发布,行为是一样的任何人都可以建议吗?
谢谢!
注意:我已经开始查看生成的类target/src_managed/main/routes_reverseRouting.scala来调试生成的versioned方法,但这似乎有些过于简单.
首先,您应该更新到sbt 0.13.5,因为sbt-web及其插件使用0.13.5中引入的名为"auto-plugins"的sbt功能.
顺便说一句,资产管道在开发模式下没有触发,你必须通过测试sbt start(或者sbt dist需要更多时间).
该versioned方法仅检查资产是否具有.md5后缀的伴随.您应该检查这些文件是否存在target/web.
据我所知,几个星期前我遇到了同样的问题.将资产路线更改为:
GET /web/assets/*file controllers.Assets.versioned(path="/public", file:Asset)
Run Code Online (Sandbox Code Playgroud)
(参见" file:Asset" - Asset如果我没记错的话似乎需要" ")
| 归档时间: |
|
| 查看次数: |
2661 次 |
| 最近记录: |