0

Lift Web Framework を REST 専用サービスとしてかなり長い間使用してきましたが、今はスタンドアロン ツールとして使用する必要があります。

<lift:surround with="default" at="content">
  <head>
      <script data-lift="with-resource-id" src="/test.js" type="text/javascript"></script>
  </head>

  <h2>Welcome to your project!</h2>
  <p><lift:helloWorld.howdy /></p>
</lift:surround>

上記の非常に基本的な Lift テンプレートがあります。問題は、ブラウザーで表示すると、何かが<?xml>DOCTYPE を追加し、ブラウザーがデフォルトでリソースをプレーンな HTML ではなく XML として解釈することです。

静的ファイルが HTML であることを Jetty/Lift に伝えるにはどうすればよいですか?

4

2 に答える 2

1

ヘッダーを追加すると役立つでしょうか?

<html>
<head>...

例: https://github.com/lift/lift_25_sbt/blob/master/scala_29/lift_basic/src/main/webapp/index.html

<lift:surround>一般に、カスタム タグなどを使用して、テンプレートに対して非常に古いアプローチを使用します<lift:helloWorld>。どこで手に入れましたか?投稿したリンクのように、新しいテンプレート スタイルを使用することをお勧めします。

于 2013-05-19T10:26:06.773 に答える
1

XHTML doctype を使用しているようです。Boot.scalaファイルに、次を追加してみてください。

LiftRules.htmlProperties.default.set((r: Req) =>
  new Html5Properties(r.userAgent))

これにより、アプリケーションが HTML5 を使用するように設定され、エンコーディング ヘッダーの追加がオフになります。<?xml...

また、@ VasyaNovikov が述べたように、lift:接頭辞付きのタグは古い構造です (多くのドキュメントでまだ言及されていますが)。それらは引き続き機能しますが、HTML5 ではいくつかの問題が発生します。同等の形式のいずれかを使用することをお勧めします。

オリジナル:

<lift:surround with="default" at="content">...</lift:surround>

HTML5:

<span data-lift="surround?with=default;at=content"></span>    
<span class="lift:surround?with=default;at=content"></span>

さまざまな形式を使用する場合lift:、最も大きな問題は、HTML5 ではタグと属性が小文字に変換されるため、<lift:helloWorld.howdy />として解釈され<lift:helloworld.howdy />、Lift がスニペットを見つけられないことです。を使用<span data-lift="helloWorld.howdy"></span>すると、それを回避できるはずです。

于 2013-05-19T13:35:12.350 に答える