0

CMS Made Simple を使用しています。スタイルシートに条件付きの Smarty コードを含めようとしていcssます。

[[if $raduno eq '1']]
  [[assign var='bgcolor' value='#bc3516']] /* red */
[[else]]
  [[assign var='bgcolor' value='#f3c127']] /* yellow */
[[/if]]

body {
    background-color:  [[$bgcolor]];
    ...
}

コードは機能しているようです ( の値に応じて、赤と黄色の背景が表示されますraduno)。ただし、スタイルシートのキャッシングはcss、このアプローチを妨げているようです。variable の値に関係なく、CMSMS サーバーのキャッシュをクリアした後に最初にアクセスしたページで選択された背景色は、その後にアクセスしたすべてのページでも取得されますraduno

変数の値に応じてスタイルシートをキャッシュすることは可能ですか? (そうであれば、自動または手動?)

この問題は現在、2 つの個別のスタイルシートを用意することで解決されています。ただし、これはメンテナンスを困難にします。また、ここではキャッシュを無効にすることはできません。2 つのスタイルシートを使用するテンプレートは、サイト全体で使用されます。

CMSMS バージョン 1.10.3 を使用しています。アップグレード役立つ可能性があることは認識していますが、変更ログにこれが当てはまることを示す兆候は見つかりませんでした. (私のバージョンは opensourcecms.com にインストールされています!)

4

1 に答える 1

0

いいえ、これを行う唯一の方法は、スタイルシートのキャッシュを避けることですが、これは良い考えではありません。最も簡単な回避策は、インライン css と Smarty を使用するか、jquery でスワップすることです。

于 2013-09-10T00:24:07.767 に答える