Не существует безопасного и простого способа установить абсолютный путь для атрибута src
.Это важно, потому что вы можете ссылаться на одно и то же изображение с нескольких страниц, которые находятся в разных каталогах.Хотели бы вы сохранить их относительное местоположение?Конечно, вы можете использовать <img src="#{resource['images:myImage.png']}"/>
, чтобы получить безопасный абсолютный путь.Не проще ли будет использовать <h:graphicImage name="myImage.png" library="images"/>
?
Что это за "безопасный" абсолютный путь?
Вы можете оставить свои изображения вне обычных ресурсовпапку и укажите их в абсолютном пути, как это, например: <img src="/myApp-web/faces/images/myImage.png"/>
, и это будет работать.Но что происходит, когда вы хотите развернуть свое приложение?Вы хотите, чтобы ваши URL были похожи на http://www.mysite.com/faces/myPage.xhtml
?Конечно, нет.Вы хотите установить корень контекста на корень сервера.Но вам не нужны хлопоты по изменению всех ваших тегов img
для производственного развертывания, а также не нужен какой-то взлом, который включает получение базового URL-адреса из компонента в области приложения и надеется, что вы не забудете изменить свойство для производственного развертывания,Так что вам лучше, по крайней мере, использовать <img src="#{resource['images:myImage.png']}"/>
или гораздо легче запомнить <h:graphicImage name="myImage.png" library="images"/>
.