HTML基本元素不会将上下文附加到JSP标记文件的头部链接

时间:2013-09-14 15:56:49

标签: java html css jsp url

我遇到了HTML基本元素的问题,没有将上下文附加到任何链接或脚本URL。我在jsp中动态创建基本URL,并在源中设置正确的上下文。但是,头部中的所有引用都在浏览器开发控制台中给出404,并且该页面显然没有css。我正在使用jsp .tag文件设置HTML头。 这是我的index.jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="tag" tagdir="/WEB-INF/tags"%>
<c:set var="req" value="${pageContext.request}" />
<c:set var="uri" value="${req.requestURI}" />

<!DOCTYPE html>
<html>
<head>
    <base href="${req.contextPath}" >
    <tag:head page="home" />
</head>

<body>

</body>
</html>

所以我将基础设置为头部的第一个东西,然后设置head.tag文件所具有的内容。我也尝试在head.tag文件中设置基础,但这也不起作用。这是head.tag文件

<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ attribute name="page" required="true" %> 

<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico"/>
<title> <c:out value="${page}" /> </title>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="css/layout.css" type="text/css" />
<link rel="stylesheet" href="stylesheet.css" type="text/css" />
<link rel="stylesheet" href="css/slide.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/jquery-ui/jquery-ui-1.10.3.custom.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.10.3.custom.min.js"></script>
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript" src="js/onLoad.js"></script>
<script type="text/javascript" src="js/cookies.js"></script>
<script type="text/javascript" src="js/spin.js"></script>
<script type="text/javascript" src="js/slide.js"></script>

例如,浏览器正在http://localhost:8080/css/layout.css查看布局样式表,它应该在http://localhost:8080/WebApp/css/layout.css中查找 页面呈现时html源代码中的基本元素是<base href="/WebApp">,它是有效的,因为它是一个绝对URL并定义了根。我甚至尝试设置整个网址http://localhost:8080 关于这里发生的任何想法?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

/WebApp不是绝对网址,href元素中的base属性值必须是绝对网址。

根据定义,以斜杠/开头的任何网址都是相对网址。参考:互联网标准STD 66,目前为RFC 3986,第4.2条。