Невозможно получить доступ к изображению из файла .jsp в Tomcat

Я работаю с VSCODE.

У меня есть веб-приложение Java по следующему пути: C:\CODIGO\IDEA_PROJECTS\TESTS\SFES\SFEAAPP\sfeaapp

Используя Maven, я упаковываю веб-приложение sfeaapp в этот файл .war: C:\CODIGO\IDEA_PROJECTS\TESTS\SFES\SFEAAPP\sfeaapp\target\sfeaapp.war

Используя Community Server Connector, я развертываю этот файл .war по этому пути Tomcat: C:\Users\jl.lmnchr.rsp\redhat-community-server-connector\runtimes\installations\tomcat-9.0.41\apache-tomcat-9.0.41\webapps\sfeaapp.war

У меня есть этот источник .jsp: C:\CODIGO\IDEA_PROJECTS\TESTS\SFES\SFEAAPP\sfeaapp\src\main\webapp\index.jsp

Со следующим содержанием:

<html>
    <body>
        <img src = "/images/common/logo.jpg">
    </body>
</html>

Этот файл изображения находится в: C:\CODIGO\IDEA_PROJECTS\TESTS\SFES\SFEAAPP\sfeaapp\src\main\webapp\images\common\logo.jpg А также в: C:\Users\jl.lmnchr.rsp\redhat-community-server-connector\runtimes\installations\tomcat-9.0.41\apache-tomcat-9.0.41\webapps\sfeaapp\images\common\logo.jpg

Но когда я нажимаю http://localhost:8080/sfeaapp/index.jsp, это изображение не загружается.

Есть ли способ исправить это без изменения кода index.jsp или изменения местоположения изображения?

Я должен спросить: почему ограничения «без изменения кода» и «без изменения местоположения изображения»? По сути, структура, описанная в вопросе, противоречит тому, с чем Maven рассчитывает работать . Это также не соответствует тому, как Maven рассчитывает обрабатывать внешние ресурсы. Извините, у меня нет решения, подходящего под ваши ограничения, а если такое решение и есть, то оно может быть весьма неприятным.

andrewJames 11.05.2023 20:09

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

JLLMNCHR 12.05.2023 08:31
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы явно обращаетесь к изображению, начиная с корневой папки. Таким образом, единственный вариант, который я вижу, который сохраняет ваше (искусственное) ограничение, — это переименовать ваш военный файл в ROOT.war, что заставит tomcat развернуть его в / вместо /sfeaapp.

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

Лучшим решением было скопировать папки «images», «js», «css» в папку «ROOT».

JLLMNCHR 12.05.2023 13:22

Другие вопросы по теме