2013-02-27 7 views
6

headlibs.jspにあるcurrentDesign.writeCssIncludes(pagecontext);への標準呼び出しで、どのCSSが含まれているかを正確に把握しようとしています。ドキュメントは、それが currentDesign.writeCssincludesには正確に何が含まれていますか?

Convenience method that writes the CSS include strings to the response. 

が、それだけで静的なファイルである、設計コンポーネントのCSSをオフに構築されて /etc/designs/currentdesign.css、および /etc/designs/currentdesign/static.css含まれること が何をしを思われるものを見ていることを簡単に述べています。しかし、これにはすべてが含まれますか?

特に、私のデザインの一環としてclientLibで処理されたCSSファイルが含まれています。これは、手動でのCSSを構築することで行う一つの方法は次のとおりです。

<link rel="stylesheet" href="<%= currentDesign.getPath() %>/myclientlib.css" /> 

しかし、私は私の設計者が異なるデザインごとに異なるCSSファイルを構築する柔軟性を持つように、自動的に生成され得ることを聞かせすることを好むと思います(つまり、 "基本的な"デザインの場合、ファイルはstatic.cssで十分ですが、 "気の利いた"デザインのためには、より少ないCSSを使用してより細かくファイルを分割したいと考えています)。また、デザイン固有のCSS情報を、影響を受けるコンポーネントで置き換えるのではなく、それらを分離する必要があります。

答えて

2

テーマやカテゴリと組み合わせて<cq:includeClientLib> tagを使用して、CSSのビットを混在させて一致させることができます。

しかし、それはやや制限があるかもしれません。たとえば、メディア属性を指定することはできません。これを行う必要がある場合、またはデザイナーがテーマ/カテゴリモデルに合った方法でCSSを構成しない場合は、<link>を直接使用して質問で特定したテクニックを使用してください。

更新

テーマについての優れた質問!私は彼らが通過するのを見ただけです。

/etc/designs/yourproject/clientlibs/themesの下に新しいフォルダ/ノードを追加して、兄弟としてdefaultにテーマを定義することができます。

<cq:includeClientLibs>タグを使用して、ある種の条件付きロジックの制御下で、テーマ用のclientlibをプルすることができます。たとえば、私のプロジェクトの1つでは、著者インスタンスにのみ適用したいと思うauthoringというテーマがあります。私はheadlibs.jspにこのコードでそれを引っ張っ:

<c:if test="${ (global['wcmmode'] eq 'EDIT') || (global['wcmmode'] eq 'PREVIEW') }"> 
    <cq:includeClientLib theme="apps.myproject.authoring" /> 
</c:if> 

私はコンテンツツリーの特定のサブツリーに自動的にテーマを適用する任意のドキュメントを見て、またはタグの存在に基づいていません。

「テーマ名はリクエストから抽出されます」という謎の文があります。 Sling docsのこの声明によってバックアップされているAdobeドキュメントでは、 "ThemeResolverFilter要求のテーマを提供します。テーマは要求属性として提供されています。"おそらく&theme=apps.yourproject.fooをクエリ文字列に追加すると、そのテーマが適用されます。

+1

カテゴリはかなり簡単です。しかし、私はテーマに関して有用なものは何も見つけられません。ドキュメントはテーマや非テーマライブラリを指定するだけですが、テーマを定義する方法やページやサイトのテーマを選択する方法については何も言いません。 –

0

CSSファイルのリストは、ページのプロパティ 'cq:designPath'に基づいています。

+0

これは 'cq:designPath'に基づいていますが、それには何が含まれ、どのように決定されますか? – Trevor

関連する問題