Я работаю с 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 или изменения местоположения изображения?
Происхождение этих двух ограничений связано с тем, что мы пытаемся перенести проект, в котором это неправильное использование широко распространено. Цель состоит в том, чтобы все работало с минимальными изменениями.




Вы явно обращаетесь к изображению, начиная с корневой папки. Таким образом, единственный вариант, который я вижу, который сохраняет ваше (искусственное) ограничение, — это переименовать ваш военный файл в ROOT.war, что заставит tomcat развернуть его в / вместо /sfeaapp.
Правильным решением было бы включить контекстный путь в URL-адрес изображения или обратиться к нему через относительный URL-адрес, но это отменит ваше ограничение.
Лучшим решением было скопировать папки «images», «js», «css» в папку «ROOT».
Я должен спросить: почему ограничения «без изменения кода» и «без изменения местоположения изображения»? По сути, структура, описанная в вопросе, противоречит тому, с чем Maven рассчитывает работать . Это также не соответствует тому, как Maven рассчитывает обрабатывать внешние ресурсы. Извините, у меня нет решения, подходящего под ваши ограничения, а если такое решение и есть, то оно может быть весьма неприятным.