2012-07-06 18 views
6

Cómo puedo agregar un parámetro de cadena de consulta a cada CSS y JavaScript incluido en el HTML para borrar el caché de CSS y JavaScript. He tratadomagento agrega un parámetro querystring a CSS y JS

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

y

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

. Pero cada vez que se devuelve un paquete de base como

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

no

mi directorio tema personalizado.

¿Cómo resolver esto?

Respuesta

1

Al añadir un archivo CSS a través de actualizaciones del formato XML, el addCss acción (que realmente sólo llama a la acción addItem con el tipo establecido en skin_css) está en busca de una ruta de archivo, no una URL. Si bien las cadenas de consulta son válidas en las URL, no están en los nombres de los archivos. Magento ve que como un parámetro inválido, se confunde y vuelve a base/default.

Puedo pensar en 2 soluciones para esto. Lamentablemente, ambos son tipo de Hackey.

  1. Mueva el archivo css al tema predeterminado de base. Esto funciona, pero depende de los retrocesos que pueden no ser los mismos en otras versiones de magento.

  2. en lugar de insertar directamente el archivo css, cree un archivo de plantilla phtml con el código html para insertar un archivo css. Luego inserte un bloque core/template con ese nuevo archivo de plantilla como su plantilla en el diseño xml. He usado este método en los sitios que desarrollo para solucionar este problema.

+0

Gracias por su respuesta, voy a tratar de la segunda solución, pero todavía esperar otra alternativa. – zhipeng

0

Aquí es lo que hacemos:

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

Tengo esta idea junto con algunas otras cosas útiles de 5 Useful Tricks For Your Magento local.xml.

Como alternativa, siempre puede cambiar el nombre del archivo style_v1.css-style_v2.css etc. cada vez que hagas un cambio - que tiene el mismo efecto que cambiar style.css?v=1-style.css?v=2.

Cuestiones relacionadas