2011-08-04 16 views
1

1つのwarアーカイブに複数のテーマをデプロイしています。テーマはwebappの/ themes/html /にあります。私は別のテーマを自分自身のテーマではなく、/ themes/html/commonに置かれた "共通"フォルダにあるリソースへのリンクを作成するようにしています。具体的には、私のテーマDefault.jspは、共通フォルダ内のスクリプト、画像、スタイルシートにリンクする必要があります。WebSphere Portal 6.1.5のテーマportal-logic:findUrlInTheme、テーマ外のリソースへのURLを検索

これまでのところ、私はいくつかの異なるアプローチ

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

をしようとしてきたん運、ちょうど版画「について:空白の」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の空の文字列。

Alternativlyは、私はそれを通報しrequest.getContextPath()は空の文字列を返すことで、この

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

を試みました。私はテーマアプリにコンテキストをハードコードすることができますが、明白な理由からこれを避けることを好むでしょう。

IBMのマニュアルは、いつものように全く役に立たない。 Thisは情報センターに記録されているすべてのものであり、私は何かもっと役に立つものを見つけられませんでした。 IBMのjarファイルを逆コンパイルすることは私にとってはほとんど第二の性質になっていますが、ポータルの内部のファインダロジックに従おうとしているだけで、大きな頭痛を与えているだけです。

だから、テーマアプリの中から誰かに外部リソースにアクセスする運がありましたか?これは普通に行われたことだと思いますが、私は不思議に思っています。自分の質問に答える

答えて

0

...

が問題だった内部URLのキャッシングだったが判明します。

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

正しいものです。私の問題は、Websphereが既に/common/styles/main.cssが以前のリクエストから存在していなかったことをキャッシュしていたことです(私がそこにデプロイする前に)。アプリケーションを再デプロイするだけで、これらのURLキャッシュがパージされないようです。フォルダ名をcommon2に変更し、WebSphereに強制的に内部ファインダを再実行させてから、それを実行するように再デプロイしました。

関連する問題