LiftでjQueryMobileを使う

Scala+Lift 関連目次

散々はまったので。。

Liftでスマートフォン向けのWebアプリを作ろうとしていたのですが、jQueryMobileがなぜか動いてくれません。厳密に言うと、IEやFireFoxでは動いてくれたんですが、Chromeと実機で動かず。jQueryのバージョンなのか、なんなのか。。

最終的には、コレに辿り着いて解決しました。。

LiftはそのままだとXHTMLを返すので、document.write でタグ吐くときエスケープしないととか色々気を遣わないといけないみたいです。そのへんのライブラリを持ってくるとそのままじゃ動かないケースがあるってことですね。

それを解決するために、Boot.scalaのbootに以下を追加しました。

[code language="scala"] LiftRules.useXhtmlMimeType = false
[/code]

また、上記のそれとは関係ないですが、jsやcssや画像ファイルなんかをwebappの下に置いて、hidden-templateからそれらを呼び出していると、templateの呼び出し元の相対パスが変わったときにちょっと面倒です。

/classpath/ というパスで %PROJECT_HOME%/src/main/resources/toserve/ にアクセスできるので、その直下にcssやjsやimagesフォルダを作って、Boot.scala の boot でそれらのフォルダを読み込むように設定してあげればOK

[code language="scala"] ResourceServer.allow {
case "css" :: _ => true
case "js" :: _ => true
case "images" :: _ => true
} [/code]