Кнопка не отображает изображение

Я следил за каждым примером здесь

Но вроде ничего не работает.

Я пытаюсь добавить изображение к своей командной кнопке, но ...

.imagesbuton{
    background-image:url("/image/add.jpg") !important ;
    width: 30;  
    height: 40;}


<p:commandButton  image="imagesbuton" rendered="#{LigneXL.resultat eq 'N existe pas'}"   action="#{composantbean.initialise()}" /> 

person Adriano_jvma    schedule 24.05.2013    source источник
comment
Неужели нужен такой огромный пробел вокруг кнопки? Разве вы не удосужились вырезать его, чтобы сделать ваш пост более профессиональным и представительным?   -  person BalusC    schedule 24.05.2013
comment
Что касается конкретной проблемы, пожалуйста, сообщите полный URL-адрес файла CSS и полный URL-адрес файла изображения, тогда мы сможем рассказать вам, как извлечь правильный URL-адрес изображения из его для использования в файле CSS (полный URL-адрес точно соответствует URL-адрес, который вы видите в адресной строке браузера при индивидуальном запросе файла CSS и файла изображения).   -  person BalusC    schedule 24.05.2013
comment
‹H: head› ‹style type = text / css› .imagesbuton {background-image: url (/image/add.jpg)! Important; ширина: 30; высота: 40;} ‹/style› ‹/ h: голова›   -  person Adriano_jvma    schedule 24.05.2013
comment
изображение находится в файле WebContent / image в моем проекте с eclipse   -  person Adriano_jvma    schedule 24.05.2013
comment
Итак, вы неожиданно используете <style> вместо полноценного файла CSS. Я изменю свой вопрос соответственно: каков полный URL-адрес страницы, содержащей элемент <style>? Но этот вопрос остается в силе: каков полный URL-адрес файла изображения? Опять же, полный URL-адрес - это тот, который вы видите в адресной строке браузера. Структура проекта совершенно неактуальна. CSS работает в веб-браузере, а не на веб-сервере.   -  person BalusC    schedule 24.05.2013
comment
Как выглядит сгенерированный HTML? Загружен ли класс css, правильный ли путь к изображению? Взгляните на firebug и предоставьте дополнительную информацию.   -  person Sonic    schedule 24.05.2013
comment
Когда я работаю с ‹p: graphicImage value = / image / add.jpg, он отлично работает   -  person Adriano_jvma    schedule 24.05.2013
comment
Почему ты не хочешь помочь нам помочь тебе? Сообщите полный URL-адрес страницы и файла изображения.   -  person BalusC    schedule 24.05.2013
comment
localhost: 8080 / JEE / pages / Menu.jsf   -  person Adriano_jvma    schedule 24.05.2013
comment
/JEE/WebContent/image/add.jpg   -  person Adriano_jvma    schedule 24.05.2013
comment
Посмотрите, как указать правильный путь к изображению: stackoverflow.com/questions/1013057/   -  person Sonic    schedule 24.05.2013
comment
Путь к изображению, который вы там разместили, не является полным URL-адресом. Каков полный URL-адрес, по которому вы видите изображение? Это localhost: 8080 / JEE / image / add.jpg? Откройте его в своем веб-браузере и соответствующим образом исправьте URL-адрес в адресе браузера, чтобы изображение было видно, а затем сообщите об этом.   -  person BalusC    schedule 24.05.2013
comment
Да, это полный путь к изображению !! он отображается, когда я запускаю его   -  person Adriano_jvma    schedule 24.05.2013
comment
.imagesbuton {background: url (localhost: 8080 / JEE / image / add.jpg ); ширина: 30! важно; height: 30! important;}   -  person Adriano_jvma    schedule 24.05.2013
comment
Кнопка отображается с символом / \   -  person Adriano_jvma    schedule 24.05.2013


Ответы (1)


Итак, полный URL-адрес страницы, на которой объявлен элемент <style>, выглядит следующим образом:

http://localhost:8080/JEE/pages/Menu.jsf

И полный URL-адрес файла изображения, который вы хотели бы использовать в <style>, явно не указан вами, но это, скорее всего, основано на предоставленной на данный момент информации:

http://localhost:8080/JEE/image/add.jpg 

Ваша конкретная проблема, скорее всего, вызвана тем, что вы каким-то образом ожидали, что именно сервер встраивает изображения в документ HTML на основе структуры проекта сервера. Однако это совершенно неверно. Вместо этого веб-браузер загружает изображение отдельно относительно URL-адреса основного ресурса, ссылающегося на ресурс изображения (который может быть либо файлом CSS, либо, в вашем случае, самой страницей JSF) и включает его в визуализированное представление HTML.

Таким образом, если вы укажете url("/image/add.jpg") с косой чертой в начале, что сделает его URL-адресом, относящимся к домену, браузер попытается загрузить изображение из:

http://localhost:8080/image/add.jpg 

Однако это неверно. Если вы обратили внимание на HTTP-трафик в наборе инструментов разработчика браузера, то вы должны были заметить, что браузер получил ошибку HTTP 404 при запросе изображения. Вам необходимо включить контекстный путь, если вам нужно указать URL-адрес, относящийся к домену. Вы можете сделать это статически:

.imagesbuton {
    background-image: url("/JEE/image/add.jpg");
}

или динамически:

.imagesbuton {
    background-image: url("#{request.contextPath}/image/add.jpg");
}

В качестве альтернативы вы можете использовать относительный URL-адрес, при котором вы переходите на одну папку вверх от /JEE/pages до /JEE, а затем в папку /image:

.imagesbuton {
    background-image: url("../image/add.jpg");
}
person BalusC    schedule 24.05.2013
comment
Кнопка отображается с символом / \ - person Adriano_jvma; 24.05.2013
comment
Это другая проблема, не имеющая отношения к исходному вопросу. - person BalusC; 24.05.2013