HTML & CSS ссылки выпрыгивают из моего контекста Tomcat - PullRequest
0 голосов
/ 22 марта 2012

У меня есть проект сервлета tomcat myeclipse, если / w HTML-ссылки я использую "/" или с CSS, я использую background: url (/);сгенерированная ссылка оказывается localhost: 8080 / myReference, проблема в том, что весь мой проект находится в контексте / 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, любая помощь будет высоко ценится!

1 Ответ

2 голосов
/ 22 марта 2012

Если вы действительно не хотите использовать тег HTML <base> по какой-то неочевидной причине, вам нужно добавить ${pageContext.request.contextPath} в каждом URL-адресе ресурса, который вы хотите сделать относительно корня домена.Это будет печатать текущий путь контекста динамически.

Например

<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/images для CSS-изображений.Тогда вы можете последовательно использовать url('images/name.ext') для изображений CSS.

См. Также:

...