我遇到了 HTML 基本元素没有将上下文附加到任何链接或脚本 URL 的问题。我在 jsp 中动态创建基本 url,并且在源中设置了正确的上下文。但是,head 中的所有引用在浏览器开发控制台中都给出了 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 并定义了根。我什至尝试设置整个 url inclidunghttp://localhost:8080
关于这里发生了什么的任何想法?感谢您的帮助!