play framework javascript 路由加载资源失败
play framework javascript Routing Failed to load resource
我正在尝试在我的 Play Framework 应用程序中进行一些 Javascript 循环,但 运行 遇到了一些错误:
我有一个 ID 为 #next
的按钮,它应该使用 Ajax 将一些新图像和文本加载到名为 #content
的 div 中。
在我的 Application.java 中,我实现了以下两种方法:
public static Result nextUser(int i) {
return ok(content.render(users.get(i)));
}
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Application.nextUser()
)
);
}
创建了这个 content.scala.html 文件:
@(user: User)
<img id="user" src="@routes.Assets.at(user.getImg())" />
<h2>@user.getStatus()</h2>
将其添加到路由文件中:
GET /nextuser controllers.Application.nextUser(i: Int)
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
然后尝试这个 Javascript 代码:
<script type="text/javascript" src="@routes.Application.javascriptRoutes()"></script>
<script>
var userIndex = 1;
$("#next").click(function() {
jsRoutes.controllers.Application.nextUser(userIndex).ajax({
success : function(data) {
$("#content").html(data);
},
error: function(err) {
}
});
});
</script>
在Application.java文件中javascriptRoutes方法controllers.routes。找不到。
有人知道是什么导致了错误吗?
编辑:
由于这个,我可以解决最初的错误:
Unable to resolve reverse routing methods in IntelliJ
现在看起来像这样:
即使定义清晰,也找不到 nextUser 方法。
当我使用 activator compile
和 运行 编译应用程序时,它使用 activator run
我的 chrome 控制台看起来像这样:
所以仍然找不到路由文件。
好的,多亏了这个我可以解决问题:
Can't get javascriptRoutes to work with Play Framework 2
问题出在我的路线文件中的顺序。一旦我在 javascript 路由之前切换资产声明,它就会起作用:
# Javascript Router
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
我正在尝试在我的 Play Framework 应用程序中进行一些 Javascript 循环,但 运行 遇到了一些错误:
我有一个 ID 为 #next
的按钮,它应该使用 Ajax 将一些新图像和文本加载到名为 #content
的 div 中。
在我的 Application.java 中,我实现了以下两种方法:
public static Result nextUser(int i) {
return ok(content.render(users.get(i)));
}
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Application.nextUser()
)
);
}
创建了这个 content.scala.html 文件:
@(user: User)
<img id="user" src="@routes.Assets.at(user.getImg())" />
<h2>@user.getStatus()</h2>
将其添加到路由文件中:
GET /nextuser controllers.Application.nextUser(i: Int)
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
然后尝试这个 Javascript 代码:
<script type="text/javascript" src="@routes.Application.javascriptRoutes()"></script>
<script>
var userIndex = 1;
$("#next").click(function() {
jsRoutes.controllers.Application.nextUser(userIndex).ajax({
success : function(data) {
$("#content").html(data);
},
error: function(err) {
}
});
});
</script>
在Application.java文件中javascriptRoutes方法controllers.routes。找不到。
有人知道是什么导致了错误吗?
编辑:
由于这个,我可以解决最初的错误: Unable to resolve reverse routing methods in IntelliJ
现在看起来像这样:
即使定义清晰,也找不到 nextUser 方法。
当我使用 activator compile
和 运行 编译应用程序时,它使用 activator run
我的 chrome 控制台看起来像这样:
所以仍然找不到路由文件。
好的,多亏了这个我可以解决问题:
Can't get javascriptRoutes to work with Play Framework 2
问题出在我的路线文件中的顺序。一旦我在 javascript 路由之前切换资产声明,它就会起作用:
# Javascript Router
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)