0

spring mvc 環境で実行されている jsp ページに css ルールを適用しようとしています。webapp/css/mystyles.css :

.center{
    margin: auto; text-align: center;
}

h1{
    color: red;
}

webapp/WEB-INF/jsp/Layout.jsp:

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title><tiles:insertAttribute name="title" ignore="true"/></title>
    <link rel="stylesheet" type="text/css" href="../../css/mystyles.css" media="screen" />
</head>
<body>
    <table border="1" cellspacing="2" align="center">
        <tr>
            <td height="30" colspan="2">
                <tiles:insertAttribute name="header"/>
            </td>
        </tr>
        <tr>
            <td height="250" width="150">
                <tiles:insertAttribute name="menu"/>
            </td>
            <td width="400">
                <tiles:insertAttribute name="body"/>
            </td>
        </tr>
        <tr>
            <td height="30" colspan="2">
                <tiles:insertAttribute name="footer"/>
            </td>
        </tr>
    </table>
</body>
</html>

そして、これは私がfirebugで得ている生成されたWebページコードの一部です:

<head>
<title>Being Java Guys | Tiles Integration</title>
<link media="screen" href="../../css/mystyles.css" type="text/css" rel="stylesheet">
<html><head><title>Apache Tomcat/7.0.35 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The requested resource is not available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.35</h3></body></html>
</link>
</head>

<div class="center">
<h1>Header</h1>
</div>

残念ながら、赤いヘッダーが表示されません。

4

3 に答える 3

0

css ファイル パスの前に、アプリケーションのコンテキスト パスを追加してください。

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<c:set var="contextPath" scope="request" value="${pageContext.request.contextPath}" />

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title><tiles:insertAttribute name="title" ignore="true"/></title>
    <link rel="stylesheet" type="text/css" href="${contextPath}/css/mystyles.css" media="screen" />
</head>
<body>
    <table border="1" cellspacing="2" align="center">
    <tr>
        <td height="30" colspan="2">
        <tiles:insertAttribute name="header"/>
        </td>
    </tr>
    <tr>
        <td height="250" width="150">
        <tiles:insertAttribute name="menu"/>
        </td>
        <td width="400">
        <tiles:insertAttribute name="body"/>
        </td>
    </tr>
    <tr>
        <td height="30" colspan="2">
        <tiles:insertAttribute name="footer"/>
        </td>
    </tr>
    </table>
</body>
</html>
于 2013-08-03T13:11:28.377 に答える
0

サーバー側のファイルの場所と URL をいじっています。

サーバー側/WEB-INF/pages/../../css/mycss.cssではcssになりますが、ブラウザによってレンダリングされたページの場合はそうではありません。ブラウザ上では、JSP の URL は別のものだからです。

相対 URL ターゲットを指定するための<base>タグがあり、それから相対 URL を指定する必要があります。<head>

于 2013-08-03T00:13:04.167 に答える