Базовый URL-адрес в Internet Explorer и JSP
Internet Explorer не поддерживает HTML <base> tag and even other browsers do, there are some problems when redirect takes place in
сервлеты to some
.jsp pages for example
запрос диспетчеризации.
Можно добавить ${pageContext.request.contextPath}
с каждым URL-адресом
ни request.getServletPath()
Относительные ссылки JSP для CSS и изображений с пересылкой сервлетов могут многое изменить. Эта ссылка: Браузер не может получить/найти относительные ресурсы, такие как CSS, изображения и ссылки при вызове сервлета, который пересылает JSP
Есть ли лучший подход с JSP/сервлетами или это просто проблема IE?
Ссылка: HTML <base> TAG и путь к локальной папке с Internet Explorer
И если это проблема IE:
1. Как исправить проблему IE, поскольку вышеуказанная статья не может дать правильный ответ?
2. Как решить проблему с помощью JSP/сервлетов?
На моем веб-сайте теперь отображаются CSS и изображения.
Например. Выход HTML:
<base href="#" onclick="location.href='http://localhost:8080/Alpinema/'; return false;" /> is not working for
<link media="all" rel="stylesheet" type="text/css" href="css/all.css">
Он работает в других браузерах, таких как Firefox и Chrome.
Часть моего кода JSP:
<head>
<base href="${fn:substring(url, 0, fn:length(url) - fn:length(uri))}${req.contextPath}/" />
<meta charset="utf-8">
<title>Alpinema.com</title>
<link media="all" rel="stylesheet" type="text/css" href="css/all.css">
/css?family=Merriweather|PT+Sans:700|Nobile:400italic' rel='stylesheet' type='text/css'>
</head>
Ответы
Ответ 1
Используйте тег <c:url>
из JSTL для ссылки на ресурсы CSS/JavaScript внутри моих JSP файлов. Поступая таким образом, вы можете быть уверены, что ресурсы CSS/JavaScript ссылаются всегда относительно контекста приложения (контекстный путь).
Пример
index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>Some Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="<c:url value="/css/main.css" />" />
<script type="text/javascript" src="<c:url value="/js/utils.js" />"></script>
<script type="text/javascript" src="<c:url value="/js/jquery-1.8.3.js" />"></script>
</head>
<body>
...
</body>
</html>
Для получения большего количества решений см. мой ответ здесь:
Добавление внешних ресурсов (CSS/JavaScript/images и т.д.) в JSP.