2012-07-06 11 views
6

どのように各CSSにクエリ文字列パラメータを追加し、CSSとJavaScriptキャッシュをクリアするためにHTMLにJavaScriptを組み込むことができますか? 私はmagentoがCSSとJSにクエリ文字列パラメータを追加します

<action method="addCss"><stylesheet>css/style.css?123</stylesheet></action>

<action method="addItem"><type>skin_css</type><name>css/styles.css?123</name><params/></action>

を試してみました。 しかし、それは

http://www.example.com/skin/frontend/base/default/styles.css?123

ない私のカスタムテーマのディレクトリなどの基本パッケージを返すたびに。

これを解決するにはどうすればよいですか?あなたは、XMLレイアウト更新によってCSSファイルを追加している場合は

答えて

1

、(本当にただskin_cssに設定タイプでaddItemアクションを呼び出す)addCssアクションは、ファイルパスではなくURLを探しています。クエリ文字列はURLで有効ですが、ファイル名には含まれません。 Magentoはそれが無効なパラメータとして混乱して、base/defaultに落ちると考えています。

これについては2つの解決策が考えられます。残念ながら、どちらもハックのようなものです。

  1. cssファイルを基本のデフォルトテーマに移動します。これは動作しますが、他のバージョンのマゼンタでは同じではないかもしれないフォールバックによって異なります。

  2. cssファイルを直接挿入する代わりに、htmlコードを含むphtmlテンプレートファイルを作成してCSSファイルを挿入します。その新しいテンプレートファイルをブロックとしてcore/templateをテンプレートとしてレイアウトxmlに挿入します。私はこの問題を回避するために開発したサイトでこのメソッドを使用しました。

+0

おかげで、私は第二の溶液を試し、それでも別の代替をお待ちしております。 – zhipeng

0

は、ここでは何をすべきかです:

<reference name="head"> 
    <block type="core/text" name="link.tags"> 
     <action method="setText"> 
     <text> 
      <![CDATA[<link rel="stylesheet" href="/css/style.css?v=2">]]> 
     </text> 
     </action> 
    </block> 
</reference> 

5 Useful Tricks For Your Magento local.xmlからの他の有用なものと一緒にこのアイデアを得ました。代替案として

変更を加えるたび、あなたは常にだけstyle_v1.cssからstyle_v2.cssなどにファイル名を変更することができます - それはstyle.css?v=2style.css?v=1を変更するのと同じ効果があります。

関連する問題