6

HTML に含まれる各 CSS と JavaScript にクエリ文字列パラメーターを追加して、CSS と JavaScript のキャッシュをクリアするにはどうすればよいですか。私が試してみました

<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

私のカスタムテーマディレクトリではありません。

これを解決するには?

4

4 に答える 4

4

この無料の拡張機能は、あなたが望むことをするはずです-私にとっては完璧に機能します:

https://github.com/jreinke/magento-suffix-static-files

于 2013-10-17T23:48:26.300 に答える
1

私たちがしていることは次のとおりです。

<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>

このアイデアは、 Magento local.xml の 5 つの便利なトリックからの他の便利なものと一緒に得ました。

別の方法として、変更を加えるたびに、ファイルの名前をいつでもstyle_v1.cssからstyle_v2.cssなどに変更style.css?v=1することができますstyle.css?v=2

于 2013-06-12T05:00:32.557 に答える
1

xml レイアウトの更新によって css ファイルを追加する場合、アクション (実際には type を に設定してアクションをaddCss呼び出すだけです) は、URL ではなくファイル パスを探します。クエリ文字列は URL では有効ですが、ファイル名では有効ではありません。Magento はそれを無効なパラメータと見なし、混乱して にフォールバックします。addItemskin_cssbase/default

これには2つの解決策が考えられます。残念ながら、どちらも一種のハッキーです。

  1. css ファイルを基本のデフォルト テーマに移動します。これは機能しますが、他のバージョンの magento では変わらない可能性があるフォールバックに依存します。

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

于 2012-07-06T16:37:41.920 に答える
0

この質問へのフォローアップの答えとして、私はあなたが必要とすることをする次の(有料の)magento拡張機能を見つけました:

http://www.magentocommerce.com/magento-connect/clear-css-and-javascript-cache.html

于 2012-12-11T07:42:10.297 に答える