Ignore:
Timestamp:
Feb 23, 2016, 10:12:31 AM (5 years ago)
Author:
cedric@…
Message:

Amelioration : on peut definir une URL statique pour servir les ressources (images, js) sans cookie.
L'URL definie est alors utilisee pour les images contenues dans les CSS minifiees, et dans le HTML des pages servies, sans modification du squelette.
On n'utilise pas cette URL pour servir la CSS minifiee car celle-ci est prefetch avec une header http link, et la servir sur un domaine different retarde son arrivee car il faut une requete DNS en plus.

File:
1 edited

Legend:

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

    r94396 r95385  
    196196                // on exclue le protocole car la compression se fait en url relative au protocole
    197197                $callbacks[] = protocole_implicite($url_base);
     198                // et l'URL des ressources statiques si configuree
     199                if (isset($GLOBALS['meta']['url_statique_ressources']) and $GLOBALS['meta']['url_statique_ressources']){
     200                        $callbacks[] = protocole_implicite($GLOBALS['meta']['url_statique_ressources']);
     201                }
    198202        }
    199203        if ($format == 'js' and $GLOBALS['meta']['auto_compress_closure'] == 'oui') {
     
    231235
    232236        if (is_null($fonctions)) {
    233                 $fonctions = array('css_resolve_atimport', 'urls_absolues_css');
     237                $fonctions = array('css_resolve_atimport', 'urls_absolues_css', 'css_url_statique_ressources');
    234238                // les fonctions de preparation aux CSS peuvent etre personalisees
    235239                // via la globale $compresseur_filtres_css sous forme de tableau de fonctions ordonnees
     
    347351 * @param string $contenu
    348352 * @param string $url_base
     353 * @param string $filename
    349354 * @return string
    350355 */
    351 function css_resolve_atimport($contenu, $url_base) {
     356function css_resolve_atimport($contenu, $url_base, $filename) {
    352357        // vite si rien a faire
    353358        if (strpos($contenu, "@import") === false) {
     
    440445        return $nom;
    441446}
     447
     448/**
     449 * Remplacer l'URL du site par une url de ressource genre static.example.org
     450 * qui evite les echanges de cookie pour les ressources images
     451 * (peut aussi etre l'URL d'un CDN ou autre provider de ressources statiques)
     452 *
     453 * @param string $contenu
     454 * @param string $url_base
     455 * @param string $filename
     456 * @return mixed
     457 */
     458function css_url_statique_ressources($contenu, $url_base, $filename){
     459
     460        if (isset($GLOBALS['meta']['url_statique_ressources'])
     461          and $url_statique = $GLOBALS['meta']['url_statique_ressources']) {
     462                $url_statique = rtrim(protocole_implicite($url_statique),"/")."/";
     463                $url_site = rtrim(protocole_implicite($GLOBALS['meta']['adresse_site']),"/")."/";
     464                $contenu = str_replace($url_site, $url_statique, $contenu);
     465        }
     466        return $contenu;
     467}
Note: See TracChangeset for help on using the changeset viewer.