我有一个相当简单的应用程序在本地工作正常,使用正确的路由,即:/ conf /路由为大多数应用程序路由,/ / module / securesocial / conf为适合该模块的路由。
但是一旦我发布到heroku,只使用了securesocial路由,所以我收到一条错误消息“Action not found for request GET /”< - 或标准路由文件中定义的任何路由。
当我尝试操纵路线时(例如创建一个综合路径文件),我在编译时会遇到很多不同的错误......
这是我的标准路线:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
GET / controllers.Application.index()
GET /foo controllers.Application.index()
GET /admin controllers.Application.admin()
POST /quote controllers.Application.addQuote()
GET /quotes controllers.Application.getQuotes()
# Login page
GET /login securesocial.controllers.LoginPage.login
GET /logout securesocial.controllers.LoginPage.logout
# User Registration
GET /signup securesocial.controllers.Registration.signUp
POST /signup securesocial.controllers.Registration.handleSignUp
# Providers entry points
GET /authenticate/:provider securesocial.controllers.LoginPage.authenticate(provider)
POST /authenticate/:provider securesocial.controllers.LoginPage.authenticateByPost(provider)
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
这是我的/ securesocial / conf / route文件:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
# GET / controllers.Application.index
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
# Login page
GET /login securesocial.controllers.LoginPage.login
GET /logout securesocial.controllers.LoginPage.logout
# User Registration
GET /signup securesocial.controllers.Registration.signUp
POST /signup securesocial.controllers.Registration.handleSignUp
GET /authenticate/:provider securesocial.controllers.LoginPage.authenticate(provider)
POST /authenticate/:provider securesocial.controllers.LoginPage.authenticateByPost(provider)
我意识到有一些重复,但我这是我用来使设置在本地工作的配置(它类似于securesocial发行版中提供的示例)...
如果你能发现我做错了什么,我肯定会受益于课程修正。
谢谢, 芯片
答案 0 :(得分:0)
有一个非常简单的解决方案:将SecureSocial中的路线合并到您应用的conf/routes
。
答案 1 :(得分:0)
我修改了SecureSocial解决Play 2中的错误的方式,使得子模块中的路由覆盖主应用程序中的路径。
这个新版本不要求您将模块代码复制到您的应用程序中,而是将其作为可下载的依赖项。
试试这个:
这是一个如何看起来的例子:
val appDependencies = Seq(
//
// your other dependencies
//
"securesocial" % "securesocial_2.9.1" % "2.0.5"
)
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
resolvers += Resolver.url("SecureSocial Repository", url("http://securesocial.ws/repository/releases/"))(Resolver.ivyStylePatterns)
)
希望它有所帮助。