0

現在、Liftを使用していくつかのプロジェクトを再実装しています。古いビューはすべてjadeforを使用して行われexpress.js、Scalateもそれを処理できるように見えることを読んでうれしく思いました。

思ったほど簡単ではないようです。行を追加した後

(new ScalateView).register

そして、ビューファイルを変更すると、私が見つけたソースによれば、それは機能するはずです。しかし、を開こうとするとhttp://localhost:8080/、「要求されたURL/はこのサーバーで見つかりませんでした」というエラーが表示されます。

コンソールログは、ファイルindex.sspとを検索していたことを示していますindex.scaml。しかし、もちろん、は。だけindex.jadeです。scalateのバージョンが古すぎる可能性があると思ったので、変更しましたbuild.sbt

name := "project"

version := "0.0.1"

scalaVersion := "2.9.1"

seq(webSettings: _*)

libraryDependencies ++= {
  val liftVersion = "2.4-M5"
  Seq(
    "net.liftweb" %% "lift-webkit" % liftVersion % "compile->default",
    "net.liftweb" %% "lift-mongodb" % liftVersion % "compile->default",
    "net.liftweb" %% "lift-mongodb-record" % liftVersion % "compile->default",
    "net.liftweb" %% "lift-wizard" % liftVersion % "compile->default",
    "net.liftweb" %% "lift-scalate" % liftVersion % "compile->default",
    "org.fusesource.scalate" % "scalate-core" % "1.5.3" % "compile->default"
  )
}

libraryDependencies ++= Seq(
  "junit" % "junit" % "4.5" % "test->default",
  "org.eclipse.jetty" % "jetty-webapp" % "8.0.4.v20111024" % "container",
  "javax.servlet" % "servlet-api" % "2.5" % "provided->default",
  "ch.qos.logback" % "logback-classic" % "0.9.26" % "compile->default"
)

しかし、それでも同じ問題です。

これを機能させるための文書化されていない魔法のトリックは何ですか?

4

1 に答える 1

1

これは、LiftScalateプラグインがデフォルトで.jadeファイルをサポートしていないためです。

独自のScalateView.scalaとLiftTemplateEngine.scalaを作成し、それらをsrc / main / scala / code /lib/のプロジェクトツリーに追加する必要がありました。

さらに、scalateとLiftの間のどこかにバグがあり、scala2.9.0+で失敗します。動作させるにはscala2.8.0を使用する必要がありました

2つのファイル:

http://pastebin.com/mLU0DAFu

http://pastebin.com/AmJmBjE7

Boot.scalaファイルにcode.lib.ScalateViewをインポートしてください

于 2012-02-27T21:59:40.407 に答える