【问题标题】:Migration Play Framework 2.5: "not found: value routes"Migration Play Framework 2.5:“未找到:值路由”
【发布时间】:2018-09-06 15:35:03
【问题描述】:

我有一个使用 Play 2.4 运行良好的应用程序,并决定使用 Play 2.5 对其进行升级,但现在我的 Twirl 模板中存在一些问题。 编译时,现在找不到 routes 包,而在迁移之前它工作正常:

[error] /Users/myname/Projects/myprpject/app/views/account.scala.html:14: not found: value routes

以及我的 account.scala.html 文件中的代码示例:

<a href="@routes.Application.logout" class="thumbnail">

如果我用 controllers.routes 替换路由,编译工作正常,但如果可以避免的话,我不想改变我的所有观点。我猜这是由于默认路由包或类似的东西在 2.5 版本中发生了变化,但不能完全弄清楚原因。

如果这有帮助,我还有其他与迁移相关的编译问题,与此类似:

[error] /Users/rbrodier/Projects/rzretail-bo/app/views/account.scala.html:18: could not find implicit value for parameter messages: play.api.i18n.Messages
[error] /Users/rbrodier/Projects/rzretail-bo/app/views/admin/administration/index.scala.html:15: not found: value flash

不确定这是否相关,但这是我的 Build.scala(如果您习惯的话,类似于 build.sbt 文件):

import com.typesafe.sbt.less.Import.LessKeys
import com.typesafe.sbt.web.SbtWeb.autoImport._
import com.typesafe.sbt.web.SbtWeb
import sbt._
import sbt.Keys._
import play.sbt.Play.autoImport._
import PlayKeys._
import com.typesafe.sbt.rjs.SbtRjs.autoImport._

object ApplicationBuild extends Build {

  val appName = "myproject"
  val appVersion = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    javaCore, javaJdbc, javaWs, cache
    , "mysql" % "mysql-connector-java" % "5.1.43"
    , "net.sf.opencsv" % "opencsv" % "2.3"
    , "commons-beanutils" % "commons-beanutils-core" % "1.8.3"
    , "org.apache.poi" % "poi" % "3.13"
    , "org.apache.poi" % "poi-ooxml" % "3.13"
    , "org.apache.poi" % "poi-scratchpad" % "3.13"
    , "org.apache.commons" % "commons-math3" % "3.5"
    , "commons-io" % "commons-io" % "2.5"
    , "ch.qos.logback" % "logback-core" % "1.1.3"
    , "ch.qos.logback" % "logback-classic" % "1.1.3"
    , "org.apache.xmlgraphics" % "fop" % "2.2"
    , "org.apache.xmlgraphics" % "batik-codec" % "1.7"
    , "com.jolbox" % "bonecp" % "0.8.0.RELEASE"
    , "com.google.inject" % "guice" % "3.0"
    , "com.mailjet" % "mailjet-client" % "4.1.1"
    , "org.jsoup" % "jsoup" % "1.8.3"
  )

  val main = Project(appName, file("."))
    .enablePlugins(play.sbt.Play, play.ebean.sbt.PlayEbean, SbtWeb)
    .settings(
      sources in doc in Compile := List()
       ,scalaVersion := "2.11.8"
      , javacOptions ++= Seq("-source", "1.8", "-target", "1.8")
      , version := appVersion
      , libraryDependencies ++= appDependencies
      , includeFilter in (Assets, LessKeys.less) := "*.less"
      , excludeFilter in (Assets, LessKeys.less) := "_*.less"
      , LessKeys.compress := true
      , pipelineStages := Seq(rjs)
    )

}

任何帮助表示赞赏!

【问题讨论】:

    标签: playframework


    【解决方案1】:

    所以这应该是一个评论,但我没有足够的代表。看起来您的导入位置可能搞砸了。

    也许这会有所帮助: https://www.playframework.com/documentation/2.6.x/Migration25#Routes-generated-with-InjectedRoutesGenerator

    引用:

    如果您使用的是 Build.scala 而不是 build.sbt,则需要导入 routesGenerator 设置键:

    import play.sbt.routes.RoutesCompiler.autoImport._
    

    希望对你有帮助。

    【讨论】:

    • 谢谢。我已经尝试过了,但它并没有解决问题。我还有其他无法识别的 Play 导入(例如消息),所以我认为这个问题更具有全局性,具体与路线相关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多