1

这是我目前遇到的另一个与 Scala/Lift 相关的问题。

我在http://simply.liftweb.net/index-Chapter-2.html#toc-Chapter-2上关注了无处不在的聊天应用程序示例,一切都已启动并运行。现在,我只想嵌入另一个 HTML 页面而不是index.html, in Boot.scala SiteMap,我看到的只是以下消息:

在此服务器上找不到请求的 URL /

因此,为了向您展示我的努力,我将向您展示以下SiteMap定义Boot.scala

// Build SiteMap
def sitemap() = SiteMap(
  Menu("Home") / "index" :: // Simple menu form
  // Menu with special Link
  Menu(Loc("Static", Link(List("static"), true, "/static/index"), 
       "Static Content")) ::
  // Menu entries for the User management stuff
  User.sitemap :_*)

LiftRules.setSiteMapFunc(sitemap)

位于文件夹index.htmlwebapp,因此其路径看起来像webapp/index.html. 以下是 的内容index.html

<div id="main" class="lift:surround?with=default;at=content">
<!-- the behavior of the div -->
<div class="lift:comet?type=Chat">
    Some chat messages
    <ul>
        <li>A message</li>
        <li class="clearable">Another message</li>
        <li class="clearable">A third message</li>
    </ul>
</div>

<div>
    <form class="lift:form.ajax">
        <input class="lift:ChatIn" id="chat_in"/>
        <input type="submit" value="Say Something"/>
    </form>
</div>

所有这些都是在聊天应用程序示例中完成的。现在我只想显示一个简单的login.html文件而不是index.html,所以我把它放在webapp/login.html. 这个文件的内容在这里:

<div id="loginContainer" class="lift:surround?with=default;at=content">
<!-- the behavior of the div -->
<div>
    <form class="lift:form.ajax">
        <div class="loginInputWrapper">
            <input type="text" class="txtLogin lift:LogIn" id="loginName"/>
        </div>
        <div class="loginInputWrapper">
            <input type="password" class="pwLogin lift:LogIn" />
        </div>
        <div class="buttonWrapper loginButtonWrapper">
            <button id="loginButton" class="hiddenButton qsbfont" type="submit">Login</button>
        </div>
    </form>
</div>

我修改了SiteMap这样的定义:

Menu("Home") / "login" :: // Simple menu form

在我看来,这一切似乎应该像index.html在启动时一样顺利运行,但是如果我想访问该站点,我会一遍又一遍地看到提到的消息。有没有人知道这里发生了什么并且可以给我一个提示/解决方案?

如果感兴趣:我在 Intellij IDEA Enterprise 中在 Tomcat 7 上运行 Scala WAR(试用许可证)

4

1 回答 1

0

index.html/是请求时显示的默认页面。你为什么要改变它?重命名login.htmlindex.html或使用 URL 重写。但是,最后一个选项只会使任何将阅读您的源代码的人感到困惑。

错误消息的原因是您请求/并且(我假设)您的 中没有“索引”条目SiteMap,因此它不知道如何处理请求。它无法知道您想login.html成为默认页面。

于 2012-10-23T11:27:07.880 回答