Неправильно работает относительный путь к файлу при добавлении картинки в HTML

Хочу поставить картинку на странице сайта. Картинка лежит в той же папке, где и HTML-шаблон, в котором нужно картинку отобразить.

Как я добавляю картинку

<img src="logo.png">

Сервер написан на Java, Фреймворк Spring.

Проблема

При загрузке сайта выходит не нужная картинка, а значок ошибки картинки.При нажатии на этот значок правой кнопкой мыши, и выбора пункта "открыть картинку в новой вкладке", открывается новая вкладка, и путь к картинке указан не тот, что мне нужен, а к домену моего сайта через слэш добавляется название картинки.

Вопрос

Как сделать так, чтобы картинка не искалась по ссылке к моему сайту, а искалась как файл, который находится внутри папки с кодом сайта?


Ответы (2 шт):

Автор решения: Alexey R.

На самом деле тот путь, который указан в src мало связан с путем на диске. Если Вы используете Spring, то, там реализована модель MVC, т.е. для каждого запроса существует контроллер, который его обрабатывает.

Когда Вы, например, обращаетесь к URL страницы, спринг использует специальный механизм, называемый реквест маппингом, который определяет, какой контроллер будет обрабатывать запрос.

То же и с ресурсами. Ваш <img src="logo.png"> означает, что браузер отправит запрос на вебсервер в котором путь отсчитывается от корня базового урла (в Вашем случае - домена). Механизм маппинга попробует найти подходящий контроллер, для такого запроса.

Подводя итог, Вам надо сконфигурировать такой маппинг, который направит запрос на контроллер, отвечающий за выдачу картинок. Этот контроллер уже прочитает файл из того места, откуда Вы ему скажете, и вернет его браузеру. Из той же папки где лежит шаблон или из любой другой.

→ Ссылка
Автор решения: Иван

Создать директорию "static" внутри директории "resources", положить в директорию "static" нужную картинку.

Далее, вместо <img src="logo.png"> использовать <img src="/logo.png" alt="">

→ Ссылка