Play框架路由无法正常工作

6
我只是试图跟随Play Framework的ZenTasks教程(http://www.playframework.com/documentation/2.1.0/JavaGuide4),但似乎连登录页面都无法正常工作。
我使用play ~run命令运行此项目。当导航到http://localhost:9000/login时,出现错误。
Action not found For request 'GET /login'
These routes have been tried, in this order:
1 GET/controllers.Application.index()
2 GET/assets/$file<.+>controllers.Assets.at(path:String = "/public", file:String)`

我的路由文件看起来像这样

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET     /                           controllers.Application.index()

# User athentication
GET     /login                      controllers.Application.login()
POST    /login                      controllers.Application.authenticate()
GET     /logout                     controllers.Application.logout()

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)

而且Application.login、authenticate和logout函数都编译通过了。我是不是错过了什么非常简单的东西,因为我无法确定出现了什么问题?


不,你的 routes 文件看起来没问题。你可以尝试重新启动你的 Play 应用程序吗? - Carsten
你是否启动了正确的应用程序?看起来你的路由文件中只检测到了2条路由,而这两条路由是新生成项目中默认的路由。 - i.am.michiel
@Carsten 我已经重新启动了我的应用程序。 - Bert B.
@i.am.michiel,我也在考虑同样的问题。好像它没有检测到任何更改。我肯定启动了正确的应用程序,这是我的唯一Play应用程序。我可以很好地使用索引页面,但是登录或注销路由都不起作用。还有其他可能的建议吗? - Bert B.
好的,让我们看看...文件名叫做routes,位于conf目录中?如果您故意向文件中引入一些语法错误,然后重新加载(或重启应用程序),会发生什么? - Carsten
显示剩余2条评论
3个回答

8

看起来路由文件没有编译好。可能需要在 play 控制台中进行清理,然后再次尝试。

$ play clean-all

如果您有activator,您可以执行activator clean。 - Iruku Kagika

4

@DiAlex

如果 play clean-all 没有起作用,您可以尝试

$ clean 

然后
$ compile

在Play控制台内。

然而,我认为它们两者都做同样的事情。


不,与清理命令相比,编译命令会执行额外的工作。 - Mohammadreza Khatami

1
如果您是通过Activator使用Play框架,只需按照以下步骤操作:
  1. sbt clean
  2. activator run
请注意保留HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接