我想要一个Play模板,它是一个JS文件(而不是<script>
在HTML模板中包含标签)。这样做的原因是可以缓存脚本。但是,我需要根据脚本的位置在脚本中创建差异,并希望使用Play的模板系统来实现。如果使用嵌入式脚本,我已经可以这样做,但是无法将其缓存。
我发现了一个现有的问题,它也问同样的问题,但是答案却完全不同(不同的目标)。
这很容易,只需...创建带有.js
扩展名的视图,即views/myDynamicScript.scala.js
::
@(message: String)
alert('@message');
//Rest of your javascript...
因此,您可以使用Scala操作将其呈现为:
def myDynamicScript = Action {
Ok(views.js.myDynamicScript.render(Hello Scala!")).as("text/javascript utf-8")
}
或通过Java操作:
public static Result myDynamicScript() {
return ok(views.js.myDynamicScript.render("Hello Java!"));
}
创建route
to you动作(可能要向其中添加一些参数):
GET /my-dynamic-script.js controllers.Application.myDynamicScript()
因此,您可以将其包含在HTML模板中,就像:
<script type='text/javascript' src='@routes.Application.myDynamicScript()'></script>
可选地:
您还可以将脚本呈现到HTML文档中,即将其放在您的<head>...</head>
部分中:
<script type='text/javascript'>
@Html(views.js.myDynamicScript.render("Find me in the head section of HTML doc!").toString())
</script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句