На кнопке не отображается картинка

Пишу веб-программу по учету заказов. К каждой строчке таблицы добавлена кнопка редактировать(синяя), удалить (красная). Кнопки стилизованы внешней таблицей готовый css-стилей. Кастамизирую стиль путем добавления внутренней таблицы стилей. Пытаюсь разместить на кнопке "редактировать" изображение (размер изображения 16 px*16px). Если я это делаю так <img src="/static/pencil.png"> , то на кнопке отображается не читаемая картинка введите сюда описание изображения

Если я добавляю картинку через свойства стиля background , то кнопка просто остается синей. Увеличение размера кнопки не помогает. Картинка размещена в папке src/main/resources/static/pencil.png, html-форма в папке src/main/resources/templates/ordersForm.html

<td>
           <form method="POST" th:action="@{/orders/delete(id=${order.id})}">
<-- кнопка редактировать -->

               <a th:href="@{/orders/showUpdateForm(id=${order.id})}" class="btn btn-info"> <img src="/static/pencil.png" ></a>
               <style>
                   .btn-info {

                   width: 30px !important;
                   height: 30px !important;
<!--                   background: transparent url(src/main/resources/static/pencil.png) no-repeat !important;-->
<!--                  background-image: url(src/main/resources/static/pencil.png) !important;-->
<!--                   background-size: cover !important;-->
                   }
               </style>
<-- кнопка удалить -->
             <button type="submit" name="submit" value="value" class="btn btn-danger ml-2">X</button>
               <style>
                   button {
                   width: 30px !important;
                   height: 30px !important;
                   margin: 0 !important;
                   font-size: 13px !important;
                   text-align: center !important;
                   padding: 0 !important;
                   }
               </style>
           </form>
        </td>

Есть у кого-нибудь понимание как можно это поправить?


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

Автор решения: Alex Krass

Указывайте в метках языки и технологии, чтобы не гадать, с чем вы работаете. Предполагаю это Java + Thymeleaf. Если это не так, то ответ удалю.

В данном случае путь до изображения указан неверно, src/main/resources/static не входит в путь. Так же в thymeleaf пути указываются по другому через @ и синтаксис позволяет управлять URL-адресами лучше.

Через изображение

Правильный путь так: <img src="/pencil.png">

По правилам thymeleaf так: <img th:src="@{/pencil.png}">

Через background

Правильный путь так: background: transparent url('/pencil.png') no-repeat !important;

По правилам thymeleaf так: background: transparent url([[@{/pencil.png}]]) no-repeat !important;

Работать будут оба, если ничего не изменено в настройках размещения, но следует отдать предпочтение синтаксису самого thymeleaf.

→ Ссылка