【问题标题】:magento appends a querystring parameter to CSS and JSmagento 将查询字符串参数附加到 CSS 和 JS
【发布时间】:2012-07-06 06:21:33
【问题描述】:

如何将查询字符串参数附加到 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

不是我的自定义主题目录。

如何解决?

【问题讨论】:

    标签: css xml magento query-string


    【解决方案1】:

    这个免费的扩展应该可以做你想做的事 - 对我来说非常适合:

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

    【讨论】:

      【解决方案2】:

      当您通过 xml 布局更新添加 css 文件时,addCss 操作(实际上只是调用类型设置为 skin_css 的 addItem 操作)正在寻找文件路径,而不是 url .虽然查询字符串在 url 中有效,但它们不在文件名中。 Magento 将其视为无效参数,因此感到困惑并回退到 base/default。

      我可以为此想到 2 个解决方案。不幸的是,两者都有点老套。

      1. 将 css 文件移动到基​​本默认主题。这可行,但它取决于在其他版本的 magento 中可能不会保持不变的后备。

      2. 不是直接插入css文件,而是用html代码创建一个phtml模板文件来插入css文件。然后在布局 xml 中插入一个 core/template 块,并将该新模板文件作为其模板。我已在我开发的网站上使用此方法来解决此问题。

      【讨论】:

      • 感谢您的回复,我会尝试第二种解决方案,但仍需等待另一种选择。
      【解决方案3】:

      这是我们的工作:

      <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=1 更改为 style.css?v=2 的效果相同。

      【讨论】:

        【解决方案4】:

        作为对这个问题的后续回答,我发现了以下(付费)magento 扩展,可以满足您的要求:

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

        【讨论】:

          猜你喜欢
          • 2013-07-20
          • 1970-01-01
          • 1970-01-01
          • 2013-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多