我正在尝试在Play 2(Scala)中使用javascriptRoutes
,我收到错误(见下文)。这是我做的:
javascriptRoutes
方法添加到Application
控制器def javascriptRoutes = Action { implicit request =>
import routes.javascript._
Ok(Routes.javascriptRouter("jsRoutes")(Orders.searchProducts))
.as("text/javascript")
}
routes
文件GET /assets/javascripts/routes controllers.Application.javascriptRoutes
<script>
导入添加到main.scala.html
<head>
...
<script type="text/javascript" src="@routes.Application.javascriptRoutes"></script>
...
</head>
有了这些更改,我在JavaScript控制台中收到以下错误:
GET http://localhost:9000/assets/javascripts/routes 404 (Not Found)
Uncaught ReferenceError: jsRoutes is not defined
我错过了什么?
答案 0 :(得分:6)
conf / routes 文件中的错误顺序可能会导致问题。
有一个提示:
http://grokbase.com/t/gg/play-framework/1348rbs2vk/2-1-scala-javascript-router-404
根据提示我调整了订单:
将javascript路由器操作的路由定义移到上方 资产路线。
问题已解决。
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
GET / controllers.MainController.index()
GET /message controllers.MessageController.getMessage()
GET /assets/javascripts/routes controllers.MessageController.javascriptRoutes()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /webjars/*file controllers.WebJarAssets.at(file)`
答案 1 :(得分:0)
与此同时,我发现了另一篇与此相关的帖子 - &gt;
Unable to resolve reverse routing methods in IntelliJ
我不得不从项目配置中删除一些信息,以使以下文件夹成为源路由的一部分 - &gt;
档案 - &gt;项目结构
在右窗格中选择来源
添加源文件夹 目标/阶-XXX / classes_managed 目标/阶-XXX / src_managed /主