【发布时间】:2014-08-20 02:36:03
【问题描述】:
我正在尝试在 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
我错过了什么?
【问题讨论】:
-
所以代码可以编译,但只有在您尝试使用 Orders.searchProducts 后才会看到错误?检查了您的代码并为我工作,您是否正在玩玩玩〜运行?
-
是的,代码可以编译,我在 chrome dev 的控制台中看到了这些错误。工具,而不是在我尝试使用 Orders.searchProducts 时,而只是在我包含
<script type="text/javascript" src="@routes.Application.javascriptRoutes"></script>的页面被加载时。我用玩跑不玩~跑..... -
嗯。好吧,这很奇怪,我使用 play 2.1.0 制作了新项目 - 复制并粘贴了您的代码行并使用 chrome 进行了测试,没问题 - 一切正常。
-
play ~run 背后的诀窍在于,它会在您每次保存文件时编译代码,尤其是当您更改它们可以工作的路线时。只是为了确保,关闭你的服务器,输入 play clean 然后播放 ~run (在命令行 ofc 中) - 如果这不起作用,我唯一想到的就是播放版本。
-
我不知道你是否解决了你的问题,但我有同样的行为,这仅仅是因为 Javascript 路由是在我的静态资源路由之后定义的路线文件。
标签: ajax scala playframework-2.0 url-routing