网页jsp:包含标题但不使用链接样式表

时间:2016-10-07 12:55:00

标签: html css jsp web-applications jspinclude

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

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

目前我有2页。

  1. Index.jsp(使用loginbutton启动页面)
  2. Home.jsp(登录后的主页)
  3. 我还有header.jspfooter.jsp。 index.jsp和home.jsp都使用页眉和页脚。

    标题中是指向stylesheet的链接。 当我运行项目时。 index.jsphome.jsp都使用标题(他们有正确的标记) 但只有index.jsp使用stylesheet

    为什么home.jsp不使用stylesheet,即使正确包含标题也是如此。

    以下是一些代码图片,可帮助您了解情况。

    项目结构

    The Project Structure

    包含header / footer.jsp

    的Index.jsp

    Index.jsp with the include of header/footer.jsp

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

    Home.jsp with the same include of header/footer.jsp

    这是Header.jsp,带有样式表的链接

    the Header.jsp, with the link to the stylesheet

    如果您需要更多信息,我很乐意给予。

2 个答案:

答案 0 :(得分:1)

使用以下代码链接header.jsp中的css:

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

注意:您需要正确找到资源,&#34; ../"将在后退文件夹中搜索资源。
 目前,您的header.jsp将搜索位于default的{​​{1}}文件夹中的资源,但您的css位于webapp\pages\layouts\default文件夹中。因此,您需要遍历以找到该资源。

技巧:webapp\css并点击超参考链接,如果链接正确,应直接打开资源。否则,如果提供了错误的路径,则无法找到资源 希望您使用的是IDE。

对于您的评论中的查询,

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

答案 1 :(得分:0)

感谢@Rohit Gaikwad的回答,我能够自己解决这个问题。

原来你需要从使用过的页面中找到css(不仅来自<IfModule mod_rewrite.c> # Perch Runway RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} RewriteCond %{REQUEST_URI} !^/perch RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* /perch/core/runway/start.php [L] </IfModule> ,还来自header.jsp

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

index/home.jsp

这样我可以在index.jsp和home.jsp中使用 (仍然不确定为什么index.jsp可以从 <link rel="stylesheet" type="text/css" href="css/default-header.css"/> <link rel="stylesheet" type="text/css" href="../../css/default-header.css"/> 链接加载css,而无需使用“../")

浏览文件夹