Changeset 50582 in spip-zone


Ignore:
Timestamp:
Aug 19, 2011, 10:04:22 PM (10 years ago)
Author:
cedric@…
Message:

Pour la compression des CSS :

  • distinguer le nom de la CSS compressée en fonction de l'url de consultation du site, pour ne pas servir une css avec des urls sur un autre domaine (cas des sites consultés depuis plusieurs domaines)
  • ne produire que des urls relatives au protocole dans la css compressée afin de pouvoir l'utiliser indiferrement en http ou en https (http://paulirish.com/2010/the-protocol-relative-url/)
Location:
_core_/plugins/compresseur
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/compresseur/inc/compresseur.php

    r50071 r50582  
    4747 * @param string $comments
    4848 *   commentaires a inserer devant
     49 * @param string $media
    4950 * @return string
    5051 */
     
    143144        $callbacks = array('each_min'=>'callback_minifier_'.$format.'_file');
    144145
    145         if ($format=="css")
     146        if ($format=="css"){
    146147                $callbacks['each_pre'] = 'compresseur_callback_prepare_css';
     148                // ce n'est pas une callback, mais en injectant l'url de base ici
     149                // on differencie les caches quand l'url de base change
     150                // puisque la css compresse inclue l'url courante du site (en url absolue)
     151                // on exclue le protocole car la compression se fait en url relative au protocole
     152                $callbacks[] = url_relative_protocole($url_base);
     153        }
    147154        if ($format=='js' AND $GLOBALS['meta']['auto_compress_closure']=='oui'){
    148155                $callbacks['all_min'] = 'minifier_encore_js';
     
    190197 * @param string $css
    191198 * @param bool|string $is_inline
     199 * @param string $fonctions
    192200 * @return bool|int|null|string
    193201 */
     
    224232                return $css;
    225233
    226         $contenu = compresseur_callback_prepare_css_inline($contenu, $css, $fonctions);
     234        // retirer le protocole de $url_absolue_css
     235        $url_absolue_css = url_relative_protocole($url_absolue_css);
     236        $contenu = compresseur_callback_prepare_css_inline($contenu, $url_absolue_css, $fonctions);
    227237
    228238        // ecrire la css
     
    238248 * @param string $contenu
    239249 * @param string $url_base
     250 * @param array $fonctions
    240251 * @return string
    241252 */
     
    243254        if (!$fonctions) $fonctions = compresseur_liste_fonctions_prepare_css();
    244255        elseif (is_string($fonctions)) $fonctions = array($fonctions);
     256
     257        // retirer le protocole de $url_base
     258        $url_base = url_relative_protocole(url_absolue($url_base));
    245259
    246260        foreach($fonctions as $f)
  • _core_/plugins/compresseur/paquet.xml

    r50128 r50582  
    22        prefix="compresseur"
    33        categorie="performance"
    4         version="1.5.0"
     4        version="1.6.0"
    55        etat="stable"
    66        compatibilite="[3.0.0-alpha2;["
Note: See TracChangeset for help on using the changeset viewer.