play framework javascript маршрутизация Не удалось загрузить ресурс

Я пытаюсь выполнить округление Javascript в своем приложении Play Framework и сталкиваюсь с некоторыми ошибками:

У меня есть кнопка с идентификатором #next, которая должна использовать Ajax для загрузки нового изображения и текста в div с именем #content.

В моем 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 контроллеры.routes. не может быть найден.

Кто-нибудь знает, что вызывает ошибку?

Редактировать:

Благодаря этому я смог устранить первоначальную ошибку: Невозможно разрешить методы обратной маршрутизации в IntelliJ

Теперь это выглядит так:

введите здесь описание изображения

Метод nextUser не может быть найден, даже если он четко определен.

Когда я компилирую приложение с помощью activator compile и запускаю его с помощью activator run, моя консоль Chrome выглядит так:

http://i.gyazo.com/34581c81beda3520f927991c6a0c554f.png

так что файл маршрутов почему-то не может быть найден.


person Jakob Abfalter    schedule 12.04.2015    source источник
comment
Почему scala помечен?   -  person curious    schedule 12.04.2015
comment
Не могли бы вы попытаться лучше объяснить, чего вы пытаетесь достичь?   -  person Martijn    schedule 12.04.2015
comment
Используйте JavaScriptReverseRouter, как описано в документации: playframework.com/documentation/2.5 .x/ — обратите внимание, что встроенный маршрутизатор не работает с методами, имеющими параметры; вам действительно нужно использовать JavaScriptReverseRouter.   -  person koppor    schedule 01.08.2016


Ответы (1)


Хорошо, я мог решить проблему благодаря этому:

Не удается заставить javascriptRoutes работать с 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)
person Jakob Abfalter    schedule 13.04.2015