我在哪里将 html 文件放在我的 web-app 文件夹中,以便使用 maven 进行电梯项目?
Posted
技术标签:
【中文标题】我在哪里将 html 文件放在我的 web-app 文件夹中,以便使用 maven 进行电梯项目?【英文标题】:where do i put html files in my web-app folder for a lift project with maven? 【发布时间】:2011-03-05 00:48:31 【问题描述】:我是 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>
【问题讨论】:
只是为了确定:localhost:8080/login.html 对吗? 是的,我忘了提。无论扩展如何,它都不起作用。我知道的不够多,不知道出了什么问题。我必须告诉 Lift 手动添加这些 html 文件吗?还是指向某个“公共 html”目录? 默认情况下,Lift Boot 类会构建一个站点地图,其中包含您可以访问的页面。检查:***.com/questions/2886921/… 有趣...所以如果我有 100 个页面,我需要将所有 100 个页面添加到站点地图中吗?如果我不希望这些页面出现在菜单栏上怎么办? 【参考方案1】:回答您最后的评论:如果您使用默认的 Lift 原型来试用 Lift:这将使用为您的站点提供菜单的 SiteMap。这是在bootstrap.liftweb.Boot.scala
类中定义的。默认情况下,使用带有菜单的站点地图来控制您可以在应用程序中访问的页面。我不确定是否有一种简单的方法可以禁用该功能,所以如果有人知道,请发表评论。
如果您根本不想要这个,您可以通过删除 Boot 类中的 val entries = Menu(Loc("Home", List("index"), "Home")) :: Nil
和 LiftRules.setSiteMap(SiteMap(entries:_*))
来禁用它。这样您就可以通过 URL 直接访问您想要的任何页面。
【讨论】:
【参考方案2】:请查看 SiteMap wiki 页面:http://liftweb.assembla.com/wiki/show/liftweb/SiteMap
SiteMap 的原因是菜单生成和访问控制的统一。您可以按名称引用页面,如果您在目录层次结构中移动它们,使用 SiteMap,链接将始终有效。 SiteMap 提供了一种类型安全的机制来提取查询参数和路径信息,以便您的当前页面可以具有关联的对象,并且可以通过将对象传递给 Loc 来计算页面的 URL。
SiteMap 可能看起来有点重,但如果您要构建一个对不同页面具有不同访问控制规则的站点,SiteMap 为您提供了一个很好的、统一的展示和安全机制。
如果您不想使用 SiteMap,只需从 Boot.scala 中删除 LiftRules.setSiteMap() 行,Lift 就会为任何页面提供服务。
【讨论】:
以上是关于我在哪里将 html 文件放在我的 web-app 文件夹中,以便使用 maven 进行电梯项目?的主要内容,如果未能解决你的问题,请参考以下文章