gpt4 book ai didi

javascript - Play Framework模板其实就是一个JS文件

转载 作者:数据小太阳 更新时间:2023-10-29 04:03:03 24 4
gpt4 key购买 nike

我想要一个 Play 模板,它是一个 JS 文件(而不是在 HTML 模板中包含 <script> 标签)。这样做的原因是脚本可以被缓存。但是,我需要根据脚本的包含位置在脚本中创建差异,并希望通过 Play 的模板系统来实现。如果我使用嵌入式脚本,我已经可以这样做,但无法缓存这些脚本。

我找到了 an existing question这也问同样的事情,但答案完全不同(不同的目标)。

最佳答案

这很简单,只需...使用 .js 创建 View 扩展名,即: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给你的行动(可能你会想给它添加一些参数):

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>

编辑:@See also samples for other templates types

关于javascript - Play Framework模板其实就是一个JS文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26747536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com