我有一个tomcat myeclipse servlet项目,如果/ w HTML链接我使用“/”或CSS我使用background:url(/);生成的链接最终是localhost:8080 / myReference,问题是 我的整个项目都在context / hs下,因此生成的引用应该是localhost:8080 / hs / myReference。我不想使用HTML基本标记,因为我需要为CSS,HTML和& JS。
这是我们的server.xml条目:
<Context path="/hs" docBase="hs" reloadable="true" crossContext="true">
<Resource name="jdbc/hsDS" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="0" maxWait="10000" username="3" password="1" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/healthsafety?autoReconnect=true" />
</Context>
这一直让我发疯,我需要对它进行排序,以便在HTML,CSS,JS中使用“/”绝对引用,任何帮助都会非常感激!
答案 0 :(得分:2)
如果您确实不想使用HTML <base>
标记出于某些非显而易见的原因,则需要在每个您想要制作的资源网址中添加${pageContext.request.contextPath}
。域根。这将动态打印当前上下文路径。
E.g。
<head>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/default.css" />
<script src="${pageContext.request.contextPath}/js/default.js"></script>
</head>
<body>
<img src="${pageContext.request.contextPath}/img/logo.png" />
<a href="${pageContext.request.contextPath}/page.jsp">link</a>
<form action="${pageContext.request.contextPath}/servlet"><input type="submit" /></form>
</body>
使用JSTL <c:set>
给它一个较短的别名可以减轻疼痛。
对于CSS背景图片,只需将这些图片放在CSS文件夹的子文件夹中,然后使用不带前导/
的路径。例如。 CSS文件的/css
文件夹和CSS图像的/css/images
文件夹。然后,您可以始终使用url('images/name.ext')
来获取CSS图像。