2012-01-15 15 views
2

jquery.jsをWebContent/js/jquery/jquery.jsにコピーしました。今私はそのファイルを特定のポートレットで使用したいと思っています。ログコンソールにWARN [404_jsp:?] /js/jquery/jquery.jsにつながるportlet-liferay.xml:portal-javascript-headerを正しく使用する方法

<script src="/js/jquery/jquery.js?browserId=firefox&amp;minifierType=js&amp;languageId=en_US&amp;b=6100&amp;t=1326630657000" type="text/javascript"></script> 

:私はLiferayはこのラインを生成ポートレットにアクセスした場合

<?xml version="1.0"?> 
<!DOCTYPE liferay-portlet-app PUBLIC 
    "-//Liferay//DTD Portlet Application 6.0.0//EN" 
    "http://www.liferay.com/dtd/liferay-portlet-app_6_0_0.dtd"> 

<liferay-portlet-app> 
    <portlet> 
     <portlet-name>MyPortletName</portlet-name> 
     <header-portal-javascript>/js/jquery/jquery.js</header-portal-javascript> 
    </portlet> 
</liferay-portlet-app> 

:これを行うには、私はこのようになりますLiferayを-のportlet.xmlを作成しました。

URLがこのように見えるのは本当に正しいですか?もし2つの戦争ファイルがあって、どちらも同じパスのjsファイルを含んでいたら、Liferayはどのようにそれら2つを区別しますか?

設定を有効にするには何が必要ですか?

(ペイトン/ 6100/2011年12月15日の構築)

+0

あなたはどのバージョンのLiferayを使用していますか? – Jonny

+0

@ジョニー:私の質問の最後の行に私が使用しているバージョンは – yankee

+0

Doh !! :)それは月曜日の朝です! – Jonny

答えて

11

使用

<header-portlet-javascript>/js/jquery/jquery.js</header-portlet-javascript> 

isntead DTDの中のコメントについては、ヘッダー・ポータルのjavascriptのJavaScriptのパスを設定するので、あなたは、ポートレット

にしてJS-ファイルを置く場合ポータルのコンテキストパスを基準にしてまた、header-portlet-javascriptは、ポートレットのコンテキストパスを基準にしたJavaScriptのパスを設定します。

+0

ok ...それは働いた。ありがとうございました。 – yankee

+0

良いスポットSquAreRoot! – Jonny

1

をLiferayのポータルコミュニティ版6.1.0 CEを使用してjQueryのための場所が間違って見えます。

あなたがあなた自身のプラグインという名前foobarのポートレットでこれをバンドルしている場合は、正しいパスは(あなたが同じのLiferay-のportlet.xmlを使用することを提供する)ことになります。

foobar-portlet/docroot/js/jquery/jquery.js

+0

これは、eclipse-project内のファイルのパス、ファイルにアクセスするためのURL、liferay-portlet.xmlに挿入する文字列ですか?私のプロジェクトには実際にいくつかのポートレットがあり、それらのいくつかはjqueryを使用しています。 – yankee

+0

liferay-portlet.xmlにいる場合、パスは/js/jquery/jquery.jsになります。しかし、別のポートレットを使用している場合は、上記のパスが必要です(/ docroot/partを除く)。しかし、これにより、jQueryを動作させるために配備されているポートレットに依存関係が作成されます。 – Jonny

+0

@yankee、私はあなたがLiferay SDKと、あなたが構築しているポートレットをSDKで作成していると仮定しています。これらのことを仮定すると、foobar-portletプロジェクトフォルダにはdocrootフォルダがあります。 –

0

2つのこと:

jQueryはLiferay 5にバンドルされています.LiferayのバージョンとバンドルされているjQueryのバージョンを確認し、必要に応じて表示してください。しかし、私はそれがLiferay 6または6.1ではないと信じていますが、私はそれについて間違っている可能性があります。

そして:

あなたは、ポートレットのすべてが利用できるJavaScriptライブラリを持っているしたい場合は、ポートレットではなく、使用テーマ(複数可)に追加する方がいいでしょう。これにより、グローバルにアクセス可能になります。欠点は、ポートレットを配布する場合、この依存関係を人々に認識させる必要があるということです。

それ以外の場合は、ポートレットの小さなグループで使用できるようにする場合は、RPの説明に従います。

using jQuery with Liferay 6の参考になります。

<header-portal-javascript>/js/jquery/jquery.js</header-portal-javascript> 

+0

あなたが私のプロジェクトに提供したリンクの唯一の違いは、私のプロジェクトで "WebContent"と呼ばれるフォルダが "docroot"と呼ばれていることです。 WebContentフォルダの名前を "docroot"に変更しようとしましたが、何も変更されませんでした。 – yankee

+0

liferay-portlet.xmlのパスが正しい(jQueryを参照しようとしているポートレットの場合)。しかし、あなたのHTMLコードは間違っていて、/foobar-portlet/js/jquery/jquery.jsでなければなりませんが、jQueryを使用するために配備されているポートレットに依存関係が作成されると述べています。テーマにjQueryを追加することを検討しましたか? – Jonny

+0

上記の例では、「MyPortletName」からjQueryを排他的に使用したいと考えています。 HTMLコードはLiferayによって自動的に生成され、ポートレットでページを開き、ブラウザで「ソースを表示」をクリックしてそこからタグをコピーしました。どのようにすることができますか? – yankee

関連する問題