网页 jsp:includes header 但不使用链接样式表

Webpage jsp:includes header but doesn't use linked stylesheet

我在寻找正确的提问方式时遇到了一些问题。但我希望你能理解问题并能够提供帮助。

我使用 jsp 设置了一个非常基本的 Maven Web-App。

目前我有 2 页。

  1. Index.jsp(带有登录按钮的起始页)
  2. Home.jsp(登录后的首页)

我还有一个header.jsp和一个footer.jsp。 index.jsp 和 home.jsp 都使用 header 和页脚。

在header是一个link到一个stylesheet。 当我运行这个项目。 index.jsphome.jsp 都使用 header (他们有正确的标签) 但只有 index.jsp 使用 stylesheet.

为什么 home.jsp 不使用 stylesheet,即使正确包含 header。

这里有一些代码图片可以帮助您了解情况。

项目结构

Index.jsp 包含 header/footer.jsp

Home.jsp与header/footer.jsp的include相同,只是路径不同。 但它们加载正确,除了 css.

这是 Header.jsp,样式表 link

如果您需要更多信息,我很乐意提供。

使用下面的代码 link header.jsp 中的 css:

<link rel="stylesheet" type="text/css" href="../../../css/default-header.css"/>

注意:您需要正确定位资源,“../”将在后退文件夹中搜索资源。
目前,您的header.jsp 将在位于webapp\pages\layouts\defaultdefault 文件夹中搜索资源,但您的css 位于webapp\css 文件夹中。因此,您需要返回以定位该资源。

技巧:ctrl key然后点击超引用link,如果link是的话应该直接打开资源正确的。否则,如果提供的路径不正确,将无法定位资源。
希望您使用的是 IDE.

对于您在评论中的查询,

  1. 您的 index.jsp 文件位于 layouts 文件夹中,因此您必须将 header.jsp 包含在 default/header.jsp 中。现在,您的代码将在 layouts/layouts/default/header.jsp
  2. 中搜索 header.jsp
  3. 对于 home.jsp,如果您能够访问 footer.jsp,那么 header.jsp 应该可以在 header.jsp 中访问。代码 ../layouts/default/header.jsphome.jsp 中是正确的。

多亏了@Rohit Gaikwad 的回答,我才能够自己弄明白。

原来你需要从使用的页面找到 css(所以不仅从 header.jsp 而且从 index/home.jsp

所以我将样式表的 link 更改为以下内容:

    <link rel="stylesheet" type="text/css" href="css/default-header.css"/>
    <link rel="stylesheet" type="text/css" href="../../css/default-header.css"/>

这样我可以在 index.jsp 和 home.jsp 中使用 (仍然不确定为什么 index.jsp 可以从 css/default-header.css link 加载 css,而无需使用“../”浏览文件夹)