#java #spring #hyperlink #thymeleaf
Вопрос:
Я хотел создать и связать внешний сайт в веб-приложении Spring Thymeleaf и вставил ссылку вот так: <a th:href="@{https://example.com}">Link</a>
Однако, перейдя по ссылке, он пытается указать внутреннее местоположение http://localhost/service/https://example.com
, а не внешний веб-сайт https://example.com как и должно было быть.
Сайт выдает просто ошибку "status":500,"error":"Internal Server Error","message":"The request was rejected because the URL was not normalized."
Что не так и как установить абсолютные связи с Thymeleaf?
Комментарии:
1. Почему бы вам просто не использовать
<a href="https://example.com">Link</a>
или<a th:href="https://example.com">Link</a>
?2. Не ответ — просто наблюдение: этот синтаксис правильный. Что-то еще (фильтр? Весна?) возможно, это переписывание URL-адреса. Просто в качестве теста, что произойдет, если вы жестко закодируете URL:
<a href="https://example.com">Link</a>
? Или даже<a th:href="@{'https://example.com'}">Link</a>
?3.
<a href="https://example.com">Link</a>
тоже не работает, действует точно так же. Я пытаюсь найти, как что-то может переписать URL-адрес или как его можно отключить
Ответ №1:
Проблема заключалась в том, что приложение было построено поверх другого проекта Spring Thymeleaf. Единственный способ заставить линка работать был такой.
<a th:text="link" th:onclick="|window.location.href='@{https://example.com}'|"></a>
Я знаю, что это не «настоящая» ссылка и ее нельзя настроить для открытия с target="_blank"
помощью или около того, но она работает с этим вариантом использования.
Ответ №2:
Если ссылка статическая, Вы можете просто использовать <a href="https://example.com">Link</a>
Если он динамический, Вы можете использовать <a th:href="${link}">Link</a>
его в шаблоне. И в Контроллере return new ModelAndView("page").addObject("link", <link>)
Комментарии:
1. Базовая HTML-ссылка
<a href="https://example.com">Link</a>
тоже не работает, здесь она работает точно так же. Ссылка указывает наhttp://LOCALWEBSITE/service/https://example.com
то, что неhttps://example.com
так, как я предполагаю.2.
<a href="https://www.instagram.com/ecomselfmade" target="_blank" class="text-gray-350"><img src="/icons/instagram.svg" width="24" height="24" alt=""></a>
Я использую это в своем шаблоне, и он работает так, как ожидалось @JukkaS.