2011-07-28 2 views
1

JSF2で複合コンポーネントを作成しました。私は素晴らしい作品です。JARの複合コンポーネントでCSSを使用する

今後の使用のためにJARとして作成したいと考えています。

私は指示書hereに従った。

しかし、CSSについて言えば、ブラウザは、JARの場所ではなくJARを使用するプロジェクトと相対的な場所を参照します。

私はこのようにそれを定義した:

<h:outputStylesheet library="css" name="component.css" target="head" /> 

と私はこの例外を取得:GET http://localhost:8080/MY _APPLICATION/resources/component.css 404 (Not Found)

それは比較的プロジェクトにではなく、ジャープロジェクトに探しています!

JARプロジェクトと比べてどうすればいいですか?

EDITED

JARツリーは次のとおりです。

WEB-INF 
--lib 
    myJar.jar 
-- web.xml 
-- faces-config.xml 
testComp.xhtml 
+0

JARファイルの構造とそれを含むWARファイルを投稿できますか?私は、JARファイルにCSSスタイルシートが含まれていないか、または何かが間違っていると感じています。また、[この回答を読む](http://stackoverflow.com/questions/6846284/including-resources-outside-context-root-with-jsf2/6847985#6847985)を数時間前に投稿してください。実行時にリソースがどのように配置されているかを理解するのに役立つことを願っています。 –

+0

ありがとう私は私の質問を編集 – Dvora

答えて

6

あなたのJARのディレクトリ構造は次のようになります。

、あなたが component.cssとしてリソース名と h:outputStylesheetタグに cssとしてライブラリ名を指定しているので
META-INF 
--resources 
    -- components 
     myComp.xhtml 
    -- css    <-- The library defined in the stylesheet 
     components.css <-- A stylesheet resource in the library 
    -- img 
    -- scripts 
--components.taglib.xml 
--faces.config.xml 

は、ファイルが置かcssという名前のディレクトリに存在しなければなりませんJARファイルのMETA-INF/resourcesディレクトリにあります。

また、他の開発者がJARを使用できるようにする場合は、他の名前と衝突しないようにライブラリ名を使用することを検討してください。

1

私の知る限り、リソースが同じディレクトリに配置する必要があります

META-INF 
--resource 
    -- components 
     myComp.xhtml 
     components.css 
    -- img 
    -- scripts 
--components.taglib.xml 
--faces.config.xml 

戦争は定期的にダイナミックなプロジェクトです複合コンポーネントとして。あなたは同じライブラリにCSSを入れようとしましたか?

+0

私は同じディレクトリにそれを置くが、それは助けていない:( – Dvora

関連する問題