网页 jsp:includes header 但不使用链接样式表
Webpage jsp:includes header but doesn't use linked stylesheet
我在寻找正确的提问方式时遇到了一些问题。但我希望你能理解问题并能够提供帮助。
我使用 jsp 设置了一个非常基本的 Maven Web-App。
目前我有 2 页。
- Index.jsp(带有登录按钮的起始页)
- Home.jsp(登录后的首页)
我还有一个header.jsp
和一个footer.jsp
。
index.jsp 和 home.jsp 都使用 header 和页脚。
在header是一个link到一个stylesheet
。
当我运行这个项目。
index.jsp
和 home.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\default
的default
文件夹中搜索资源,但您的css 位于webapp\css
文件夹中。因此,您需要返回以定位该资源。
技巧:按ctrl key
然后点击超引用link,如果link是的话应该直接打开资源正确的。否则,如果提供的路径不正确,将无法定位资源。
希望您使用的是 IDE.
对于您在评论中的查询,
- 您的
index.jsp
文件位于 layouts
文件夹中,因此您必须将 header.jsp 包含在 default/header.jsp
中。现在,您的代码将在 layouts/layouts/default/header.jsp
中搜索 header.jsp
- 对于
home.jsp
,如果您能够访问 footer.jsp
,那么 header.jsp
应该可以在 header.jsp
中访问。代码 ../layouts/default/header.jsp
在 home.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,而无需使用“../”浏览文件夹)
我在寻找正确的提问方式时遇到了一些问题。但我希望你能理解问题并能够提供帮助。
我使用 jsp 设置了一个非常基本的 Maven Web-App。
目前我有 2 页。
- Index.jsp(带有登录按钮的起始页)
- Home.jsp(登录后的首页)
我还有一个header.jsp
和一个footer.jsp
。
index.jsp 和 home.jsp 都使用 header 和页脚。
在header是一个link到一个stylesheet
。
当我运行这个项目。
index.jsp
和 home.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\default
的default
文件夹中搜索资源,但您的css 位于webapp\css
文件夹中。因此,您需要返回以定位该资源。
技巧:按ctrl key
然后点击超引用link,如果link是的话应该直接打开资源正确的。否则,如果提供的路径不正确,将无法定位资源。
希望您使用的是 IDE.
对于您在评论中的查询,
- 您的
index.jsp
文件位于layouts
文件夹中,因此您必须将 header.jsp 包含在default/header.jsp
中。现在,您的代码将在layouts/layouts/default/header.jsp
中搜索 header.jsp
- 对于
home.jsp
,如果您能够访问footer.jsp
,那么header.jsp
应该可以在header.jsp
中访问。代码../layouts/default/header.jsp
在home.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,而无需使用“../”浏览文件夹)