1

我在访问我的 CSS 文件时遇到了一些问题。我确实搜索过,但我无法弄清楚什么是不正确的。

网页.xml:

 <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.mvc</url-pattern>
</servlet-mapping>

我的 JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Portail web </title>
<link rel="stylesheet" type="text/css"
href="../GN/css/portail.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
 <h1>TEST</h1>
</body>
<html>

我的CSS:

@CHARSET "ISO-8859-1";
body
{
background-color:blue;
}

我的架构:

JSP 位于:webapp/WEB-INF/FR/JSP/portail.jsp

CSS 位于:webapp/WEB-INF/GN/css/portail.css

我也尝试了绝对路径,但没有任何效果(我的 JSP 上没有应用样式)。

谢谢。

编辑 :

如果我这样做<%@ include file="/WEB-INF/GN/css/portail.css"%>,它会打印出我的 css,所以路径很好,但样式不适用于我的 jsp:/

4

2 回答 2

3

是 Web 浏览器从 Web 服务器请求文件。您的页面根本不直接访问文件。里面的所有文件WEB-INF/ 都不能公开访问。

您有两种可能的解决方案:

  1. 将 .js 和 .CSS 文件移到 WEB-INF/ 之外

  2. 或使用以下映射:

    web.xml (Spring 3.0.3+)

<servlet>
  <servlet-name>default</servlet-name>
  <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
  <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
  </init-param>
  <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>/static/*</url-pattern>
</servlet-mapping>

在 JSP 中使用 path/static/js//static/css/

于 2013-05-15T14:45:27.320 回答
0

../GN/css/portail.css指向FR/GN/css/portail.css和不指向GN/css/portail.css

尝试../../GN/css/portail.css

(如果您直接访问您的 jsp,但它可能是从具有不同 url 的操作转发的)

于 2013-05-15T13:28:07.460 回答