Java HTML&;CSS引用跳出我的Tomcat上下文

Java HTML&;CSS引用跳出我的Tomcat上下文,java,apache,tomcat,servlets,Java,Apache,Tomcat,Servlets,我有一个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"

我有一个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中使用“/”绝对引用,任何帮助都将不胜感激

如果出于某种不明显的原因确实不想使用HTML
标记,则需要在每个要相对于域根创建的资源URL中预先添加
${pageContext.request.contextPath}
。这将动态打印当前上下文路径

例如


使用JSTL
给它一个较短的别名可能会减轻痛苦

至于CSS背景图像,只需将这些图像放在CSS文件夹的子文件夹中,并使用路径,而无需引导
/
。例如,css文件的
/css
文件夹和css图像的
/css/images
文件夹。然后,您可以一致地使用
url('images/name.ext')
作为CSS图像

另见:

但这只适用于HTML,css不能使用该动态引用,它将手动在其中使用/hs前缀。这将在生产中失败,因为在生产中没有/hs上下文可以将替代URL绑定到localhost:8080/hs URL吗?例如,模拟windows hosts.file的作用,根据您的第二条评论,通过访问www.local.hs.Company.co.nz localhost:8080/hs,我认为您需要认识到,是客户端(网络浏览器)根据请求URL解析这些URL,而不是服务器。嘿。谢谢你的回答。是的,CSS的问题会让我感到高兴。问题是Javascript也会有同样的问题。(和jquerymobile一样,它也是一款笨重的JS应用程序)。我目前正在使用JS为所有URL加上上上下文根的前缀,这很烦人,因为***!。我也不想把图像放在css文件夹中,因为它的语义不正确。语义不正确?CSS图像是CSS图像,对吗?我不是说你应该把所有的图片都放在CSS文件夹里。你通过
引用的那些当然不应该放在那里。想一想。至于JavaScript,您可以利用这样一个事实:URL总是相对于父文件的请求URL解析,而不是相对于服务器中的本地磁盘文件系统结构解析。