我在哪里将 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")) :: NilLiftRules.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 进行电梯项目?的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里把我的 favicon 和 Hugo 放在一起

在哪里放置我的 base.html 文件?

Symfony2,将 css、javascript、图像放在哪里

将我的 PHP 文件放在哪里

我在哪里将我的亚马逊 .pem 文件保存在 Mac 上

我应该将 javascript 库放在 Grails 应用程序的啥位置?