2

私は scala の Lift フレームワークを初めて使用します。何らかの理由で、index.html は web-app ディレクトリにあり、jetty を起動すると、http://localhost:8080/はその index.html ファイルを問題なく指します。しかし、login.html ファイルを index.html と同じフォルダーに配置してからhttp://localhost:8080/loginに移動すると、Lift はファイルを提供しません。

ファイルを登録するには、ファイルをどこに置く必要がありますか? 動作が index.html でのみ機能するように見えるため、少し迷っています。

Chrome でソースを表示すると、次のようになります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> <body>The Requested URL /login was not found on this server</body> </html>  
4

2 に答える 2

5

SiteMap wiki ページを参照してください: http://liftweb.assembla.com/wiki/show/liftweb/SiteMap

SiteMap の理由は、メニュー生成とアクセス制御の統合です。名前でページを参照でき、ディレクトリ階層内でページを移動する場合、SiteMap を使用すると、リンクは常に機能します。SiteMap は、クエリ パラメーターとパス情報を抽出するためのタイプ セーフなメカニズムを提供します。これにより、現在のページに関連付けられたオブジェクトを含めることができ、そのオブジェクトを Loc に渡すことでページの URL を計算できます。

SiteMap は少し重いように見えるかもしれませんが、ページごとに異なるアクセス制御ルールを持つサイトを構築する場合、SiteMap は表示とセキュリティの両方に優れた統一されたメカニズムを提供します。

SiteMap を使用したくない場合は、Boot.scala から LiftRules.setSiteMap() 行を削除するだけで、Lift は任意のページを提供します。

于 2010-06-18T05:39:52.473 に答える
1

最後のコメントに答えるには: デフォルトのリフト アーキタイプを使用してリフトを試す場合: これは、サイトのメニューを提供する SiteMap を使用します。これはbootstrap.liftweb.Boot.scalaクラスで定義されています。デフォルトでは、メニュー付きのサイトマップを使用すると、アプリケーションでアクセスできるページが制御されます。その機能を無効にする簡単な方法があるかどうかはわかりませんので、誰かが知っている場合はコメントしてください. これがまったく必要ない場合は、Boot クラスのval entries = Menu(Loc("Home", List("index"), "Home")) :: Nilとを削除して無効にすることができます。LiftRules.setSiteMap(SiteMap(entries:_*))そうすれば、URL にアクセスして、必要なページに直接アクセスできます。

于 2010-06-17T17:29:20.417 に答える