无法使用javascriptRoutes与Play Framework 2一起使用

时间:2013-02-16 00:05:55

标签: ajax scala playframework-2.0 url-routing

我正在尝试在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

我错过了什么?

2 个答案:

答案 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 /主