Портлеты WSRP в Oracle WebCenter: изображения, на которые ссылаются файлы CSS, не загружаются - PullRequest
0 голосов
/ 19 января 2010

Если портлет WSRP отображает страницу jsp, которая ссылается на файл css, который ссылается на изображение, изображение не может быть загружено, поскольку URL в css не может быть найден.URL в css является относительным: ../images/image.gif.

Подробности моей проблемы

Я разработал портлет JSR168 (Java PortletСтандартный), и я хочу развернуть его в Oracle WebCenter 11g (среди других серверов портала жалоб JSR)

Мой портлет отображает jsp, который ссылается на файл css, а этот css ссылается на несколько изображений.Все эти ресурсы (изображения, css, jsps и т. Д.) Содержатся в файле war моего портлета.

Когда я загружаю портлет на страницу WebCenter, файл css загружается правильно, но изображения, на которые ссылаетсяэтот файл CSS не.

Причина в том, что для генерации CSS WebCenter генерирует длинный URL: http://localhost:8888/webcenter/resourceproxy/~.portletId~3D~252Foracle~252Fadf~252Fportlet~252FscopedMD~252Fs8bba98ff_4cbb_40b8_beee_296c916a23ed~252Fportlets~252Fclients3_366e85fa_e823_48ac_b37a_9890375111ab~26clientId... (его путь длиннее)

Но внутри этого файла CSSЕсть относительные пути к изображениям.И когда браузер пытается загрузить их, URL-адрес: http://localhost:8888/webcenter/resourceproxy/img/sprite.png, который не существует.

Что я могу сделать, чтобы WebCenter правильно загружал изображения в мои CSS-файлы?

Как развернуть мой портлет в Oracle WebCenter Я объясняю это на случай, если мне придется сделать это по-другому.

  • Я преобразую свой портлет в WSRPпортлет, выполнив java -jar wsrp-priorploy.jar исходный целевой EAR EAR, как описано в http://download.oracle.com/docs/cd/E12839_01/webcenter.1111/e12405/wcadm_portlet_prod.htm#CHDECJHI)

  • Я внедряю его в WebLogic с помощью консоли WebLogic.1036 * Я регистрирую производителя портлетов с помощью Enterprise Manager 11g Fusion MiddleWare Control.

  • Я добавляю портлет на главную страницу пространства веб-центра

Моя среда

WebCenter Suite (11.1.1.2.0) + Сервер WebLogic (10.3.2) SO: Windows XP SP3

Заранее спасибоза ваше время.

Ответы [ 3 ]

1 голос
/ 01 марта 2010

Не используйте относительный путь, например ../../css/, вместо этого используйте <% = request.getContextPath ()%> / css /, в вашем CSS вы все равно можете сохранить относительный путь ваших изображений ../images/.

1 голос
/ 22 февраля 2010

У меня похожая проблема. Ну, это не даст вам решения, но объяснит вам, почему ...

Одна из целей агрегированной страницы - это общий вид портлетов, содержащихся на этой странице [A500]. Это влияет не только на украшения вокруг портлетов, но и на их содержимое. Использование общей таблицы стилей CSS для всех портлетов и определение набора стандартных стилей обеспечивает этот общий внешний вид, не требуя, чтобы портлеты генерировали разметку для конкретного потребителя. Портлеты ДОЛЖНЫ использовать определения стилей CSS из этой спецификации, чтобы участвовать в равномерном отображении их содержимого различными потребителями. Для типов разметки, которые поддерживают таблицы стилей CSS, Потребители ДОЛЖНЫ предоставить таблицу стилей CSS агенту Конечного пользователя с определениями классов, определенных в [Раздел 9.5] данной спецификации.

Я думаю, что кто-то допустил ошибку при написании спецификации.

0 голосов
/ 15 января 2011

Я думаю, вы можете настроить сервер приложений так, чтобы он передавал файлы CSS через движок так же, как вы делаете JSP.В этом случае вы должны иметь возможность скомпилировать эти теги.

...