0

Internet Explorer 不支持 HTML <base> tag and even other browsers do, there are some problems when redirect takes place inservlets to some.jsppages for example请求调度。`

${pageContext.request.contextPath}添加每个 URL 也不可行request.getServletPath()

带有 servlet 转发的 CSS 和图像的 JSP 相对链接可能会改变很多。此链接:当调用转发到 JSP 的 Servlet 时,浏览器无法访问/查找相关资源,如 CSS、图像和链接

JSP / servlet 是否有更好的方法,或者它只是一个 IE 问题?
链接:HTML <base> TAG 和 Internet Explorer 的本地文件夹路径

如果是 IE 问题:
1. 如何解决 IE 问题,因为上述帖子无法给出有效答案?
2.如何用JSP/servlet解决?


我的网站现在显示 CSS 和图像。
例如 HTML 输出是:

<base href="http://localhost:8080/Alpinema/" /> 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>
4

1 回答 1

4

使用<c:url>来自 JSTL 的标签来引用我的 JSP 文件中的 CSS/JavaScript 资源。通过这样做,您可以确保始终相对于应用程序上下文(上下文路径)引用 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>

如需更多解决方案,请在此处查看我的答案:
在 JSP 中添加外部资源(CSS/JavaScript/图像等)

于 2012-12-28T00:19:42.543 回答