我想从Play!Framework 2中的模板返回.js文件。
以下是我的表现:
在我的views文件夹中,我创建了一个模板文件:
initials.scala.js
包含类似的内容:
{
'data': @Model.find.findList()
}
然后,在我的控制器中:
public static Result initials() {
return ok(views.js.initials.render());
}
这对我来说非常简单,但我收到了这个错误:
错误:包views.js不存在
我做错了什么?
如果我将js重命名为txt(在文件名和控制器中的包调用中),一切正常。但是,如果我将其更改为js,我会收到错误。
答案 0 :(得分:3)
您没有做错任何事情,Play允许您仅使用.html
,.xml
或.txt
个视图扩展名,因此您需要使用其中一个。
从技术角度来看,无论你使用哪一个都无关紧要,无论如何你需要将它作为JavaScript从控制器返回,即用:
public static Result initials() {
return ok(views.html.initials.render()).as("application/javascript");
}
答案 1 :(得分:0)
这可以通过在路线定义中放置特定资产的路线来实现。
即。 GET /assets/javascripts/initials.js controllers..initials()
答案 2 :(得分:0)
您可以拥有scala.js
个文件但不要使用views.js.initials.render()
来调用它,而是js.initials.render()
至少对于Scala,它适用于Play 2.2