Портал-логика темы WebSphere Portal 6.1.5: findUrlInTheme, поиск ссылки на ресурс вне темы - PullRequest
1 голос
/ 04 августа 2011

Я размещаю несколько тем в одном военном архиве.Темы находятся в веб-приложении в / themes / html /.Я пытаюсь получить разные темы для создания ссылок на ресурсы в «общей» папке, которая сама по себе не является темой, но помещена в / themes / html / common.В частности, мои темы Default.jsp должны ссылаться на скрипты, изображения и таблицы стилей в общей папке.

До сих пор я пробовал несколько разных подходов

<link href='<portal-logic:urlFindInTheme file="../common/styles/main.css" />' type="text/css" rel="stylesheet"/>

Не повезло, просто печатает"about: blank" as href

Затем я экспериментировал с регистрацией общей папки в качестве своей собственной темы ("называемой CommonResources") и попытался

<link href='<portal-logic:urlFindInTheme file="/styles/main.css" theme="CommonResources"/>' type="text/css" rel="stylesheet"/>

Тот же результат, "about: blank».Я также пробовал различные варианты портальной логики: urlFind

<link href='<portal-logic:urlFind file="../common/styles/main.css" />' type="text/css" rel="stylesheet"/>
<link href='<portal-logic:urlFind file="/common/styles/main.css" />' type="text/css" rel="stylesheet"/>
<link href='<portal-logic:urlFind file="main.css" path="/common/styles" />' type="text/css" rel="stylesheet"/>
<link href='<portal-logic:urlFind file="main.css" path="/common/styles" root="/" />' type="text/css" rel="stylesheet"/>
<link href='<portal-logic:urlFind file="main.css" path="/styles" root="/common" />' type="text/css" rel="stylesheet"/>

То же самое, не повезло.Это не приводит к событию: пусто, просто пустая строка в href.

Альтернативно, я пробовал это

<link href="<%= request.getContextPath() %>/themes/html/common/styles/main.css" type="text/css" rel="stylesheet" />

Проблема в том, что request.getContextPath () возвращает пустуюстрока.Я мог бы жестко закодировать контекст в приложении темы, но я бы предпочел избежать этого по очевидным причинам.

Документация IBM, как обычно, совершенно бесполезна. Это обо всем, что задокументировано в инфоцентре, и я не смог найти ничего более полезного.Декомпиляция IBM jar: s стала для меня почти второй натурой, но попытка следовать логике внутреннего поиска в портале просто доставляет мне огромные головные боли.

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

1 Ответ

0 голосов
/ 05 августа 2011

Отвечая на мой собственный вопрос ...

Оказывается, проблема заключалась в кешировании URL внутри WAS.

<link href='<portal-logic:urlFindInTheme file="../common/styles/main.css" />' type="text/css" rel="stylesheet"/>

Правильно и работает.Моя проблема заключалась в том, что websphere уже кешировал, что /common/styles/main.css не существует из предыдущего запроса (до того, как я его там развернул).Похоже, что эти кэши URL не очищаются только потому, что вы повторно развертываете приложение.Я изменил имя папки на common2 и развернул ее просто для того, чтобы заставить WebSphere перезапустить внутренний искатель, и тогда он заработал.

...