2

私たちは、collective.xdv を使用して、Plone 4 サイトのテーマとして静的 HTML ファイルを使用しています。

静的 HTML ファイル自体は Web ブラウザーで開くことができるため、テーマ作成者はテーマ作成プロセスを簡単に行うことができます。

ただし、テーマ ファイルは、HTML で参照されるファイル システム リソース ディレクトリを使用します。

  <link rel="stylesheet" type="text/css" href="../css/jquery/accordion.css"/>

カスタムプレフィックスを使用して、Ploneを介して提供されるときにこれらを絶対URLに書き換えるにはどうすればよいでしょうか? (rules.xml で実行できますか??

例: 翻訳

  ../images/logo.gif

  http://portal_url/images/logo.gif
4

2 に答える 2

4

「absolute_prefix」設定を使用する場合

<registry>
    <record interface="collective.xdv.interfaces.ITransformSettings" field="absolute_prefix">
        <value>/++resource++example.sitetheme</value>
    </record>
</registry>

「applyPrefix=True」オプションを使用してリソースレジストリを介して静的ファイルを管理し、テーマhtmlファイル内で相対URLと絶対URLの両方を使用できます(テーマ作成者がPloneから独立した静的ディレクトリを単純に使用する可能性を保持します)。

<drop theme="/html/head/style" />
<append theme="/html/head" content="/html/head/style " />

それらをテーマ テンプレートから削除し、リソース レジストリからすべての静的リソースをプルして戻します (本番環境で使用するためにそれらをマージするという追加の利点があります)。詳細については、 collective.xdvを参照してください。

注:Nginx静的ファイルの提供は非常に高速ですが、テーマの静的ファイルのリソース レジストリを前面の通常のキャッシュ プロキシ (Varnish) と組み合わせて利用することで、全体的なパフォーマンスが向上しました。

于 2011-04-20T09:18:14.150 に答える
0

静的ディレクトリをリソースとして登録します。ルールを含むディレクトリとメディア ファイルは分けておいてください。

「my.package」という名前のパッケージ内のリソース ディレクトリを登録するには、configure.zcml で次を使用します。

  <browser:resourceDirectory
     name="my.package.media" 
     directory="static"
     />

テンプレートでは、'++resource++my.package.media/name-of-resource' を使用してリソースにアクセスできるようになります。

<link rel="stylesheet" type="text/css" href="++resource++my.package.media/css/jquery/accordion.css"/>

これは、URL の書き換え後でも意図したとおりに機能するはずです。

XDV ルールとテンプレートの場所を定義するときは、絶対パスを使用しないでください。代わりに、単に Python を使用してください :) たとえば、テンプレート ファイル (.html) とルール ファイル (.xml) を、パッケージ内の xdvstuff というディレクトリに配置しました。

python://my.package/xdvstuff/theme.html
python://my.package/xdvstuff/theme.xml
于 2011-04-20T08:48:44.327 に答える