Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

concaténation de css

2 views
Skip to first unread message

Olivier Masson

unread,
May 15, 2009, 5:31:12 AM5/15/09
to
Bonjour,

Comme de mon c�t�, j'aime bien avoir une feuille de style par page + 1
globale + 1 pour le print + 1 pour le reset + 1 pour... bref 36
feuilles, je voulais faire une b�te concat�nation � l'appel d'une page.

Pas bien compliqu�, mais ce serait bien que ce soit en cache pour �viter
de faire cette op�ration � chaque appel. Donc il faut v�rifier qu'une
des css n'a pas �t� mise � jour.

Alors, plus simplement, connaissez-vous une telle fonctionnalit� d�j�
d�velopp�e dans une solution open-source quelconque, histoire que je ne
refasse pas m�diocrement quelque chose qui existe d�j� ?

Merci.

Olivier Miakinen

unread,
May 15, 2009, 7:18:35 AM5/15/09
to
Le 15/05/2009 11:31, Olivier Masson a ï¿œcrit :
>
> Comme de mon cᅵtᅵ, j'aime bien avoir une feuille de style par page + 1
> globale + 1 pour le print + 1 pour le reset + 1 pour... bref 36
> feuilles, je voulais faire une bᅵte concatᅵnation ᅵ l'appel d'une page.
>
> Pas bien compliquᅵ, mais ce serait bien que ce soit en cache pour ᅵviter
> de faire cette opᅵration ᅵ chaque appel. Donc il faut vᅵrifier qu'une
> des css n'a pas ᅵtᅵ mise ᅵ jour.
>
> Alors, plus simplement, connaissez-vous une telle fonctionnalitᅵ dᅵjᅵ
> dï¿œveloppï¿œe dans une solution open-source quelconque, histoire que je ne
> refasse pas mᅵdiocrement quelque chose qui existe dᅵjᅵ ?

Je ne suis pas sï¿œr de comprendre ce que tu cherches. Tu voudrais crï¿œer
un fichier unique contenant la concatï¿œnation de tous les autres ? Si
oui, est-ce qu'un makefile ne rᅵpondrait pas ᅵ la question ?

Olivier Masson

unread,
May 15, 2009, 8:49:41 AM5/15/09
to
Olivier Miakinen a ï¿œcrit :

> Je ne suis pas sï¿œr de comprendre ce que tu cherches. Tu voudrais crï¿œer
> un fichier unique contenant la concatï¿œnation de tous les autres ? Si
> oui, est-ce qu'un makefile ne rᅵpondrait pas ᅵ la question ?

Oula ! ᅵ part pour compiler, je n'ai jamais entendu parler de makefile.

Je veux concatï¿œner ("merger") les fichiers css, histoire de rï¿œduire les
requï¿œtes http (et d'avoir un meilleur taux de compression gzip par la
mï¿œme occasion ; tiens d'ailleurs ce serait bien que le fichier obtenu
soit dᅵbarrassᅵ de ses commentaires).

Sergio

unread,
May 15, 2009, 9:28:52 AM5/15/09
to
Olivier Masson a ï¿œcrit :
> Olivier Miakinen a ï¿œcrit :
>
>> Je ne suis pas sï¿œr de comprendre ce que tu cherches. Tu voudrais crï¿œer
>> un fichier unique contenant la concatï¿œnation de tous les autres ? Si
>> oui, est-ce qu'un makefile ne rᅵpondrait pas ᅵ la question ?
>
> Oula ! ᅵ part pour compiler, je n'ai jamais entendu parler de makefile.

ᅵa sert aussi ᅵ ce genre de bricole... On peut tout faire avec un makefile.

Par exemple :
Tu as 3 pages (ne compliquons pas) :
page1.html, page2.html, page3.html

Pour toutes on utilise :
commun.css, print.css

Et chacune ᅵ sa feuille particuliᅵre :
page1.css, page2.css, page3.css

Tu veux concatï¿œner (par exemple) pour page1 : commun.css, print.css et
page1.css dans cs1.css

Tu fais un makefile :
-------------------------------
# Les fichiers ᅵ gᅵnᅵrer
all: css1.css css2.css css3.css

# dï¿œpendances :
css1.css: page1.css print.css commun.css
cat print.css commun.css page1.css >css1.css

css2.css: page2.css print.css commun.css
cat print.css commun.css page2.css >css2.css

css3.css: page3.css print.css commun.css
cat print.css commun.css page3.css >css3.css

# On peut en rajouter d'autres (avec les .js par exemple...).
-------------------------------
Et tu l'appliques ᅵ chaque fois que tu fais une modif quelque part !


--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org

Olivier Masson

unread,
May 15, 2009, 10:50:50 AM5/15/09
to
Sergio a ï¿œcrit :

> ᅵa sert aussi ᅵ ce genre de bricole... On peut tout faire avec un makefile.
>
> Par exemple :
> Tu as 3 pages (ne compliquons pas) :
> page1.html, page2.html, page3.html
>
> Pour toutes on utilise :
> commun.css, print.css
>
> Et chacune ᅵ sa feuille particuliᅵre :
> page1.css, page2.css, page3.css
>
> Tu veux concatï¿œner (par exemple) pour page1 : commun.css, print.css et
> page1.css dans cs1.css
>
> Tu fais un makefile :
> -------------------------------
> # Les fichiers ᅵ gᅵnᅵrer
> all: css1.css css2.css css3.css
>
> # dï¿œpendances :
> css1.css: page1.css print.css commun.css
> cat print.css commun.css page1.css >css1.css
>
> css2.css: page2.css print.css commun.css
> cat print.css commun.css page2.css >css2.css
>
> css3.css: page3.css print.css commun.css
> cat print.css commun.css page3.css >css3.css
>
> # On peut en rajouter d'autres (avec les .js par exemple...).
> -------------------------------
> Et tu l'appliques ᅵ chaque fois que tu fais une modif quelque part !
>
>

Merci, ï¿œa me semble trï¿œs bien mais :
- comment gï¿œnï¿œre-t-on le tout (je fais un make ???)
- est-il possible avec cette technique de le faire automatiquement
(comme je le souhaitais, si un des fichiers css a ᅵtᅵ modifiᅵ, la
concatï¿œnation se fait immï¿œdiatement) ?
- du coup, c'est gᅵrᅵ dans le shell et plus via php (hors shell_exec...) ?

Sergio

unread,
May 15, 2009, 11:11:12 AM5/15/09
to
Olivier Masson a ï¿œcrit :

>> Tu veux concatï¿œner (par exemple) pour page1 : commun.css, print.css et

>> page1.css dans cs1.css
>>
>> Tu fais un makefile :
>> -------------------------------
>> # Les fichiers ᅵ gᅵnᅵrer
>> all: css1.css css2.css css3.css
>>
>> # dï¿œpendances :
>> css1.css: page1.css print.css commun.css
>> cat print.css commun.css page1.css >css1.css
>>
>> css2.css: page2.css print.css commun.css
>> cat print.css commun.css page2.css >css2.css
>>
>> css3.css: page3.css print.css commun.css
>> cat print.css commun.css page3.css >css3.css
>>
>> # On peut en rajouter d'autres (avec les .js par exemple...).
>> -------------------------------
>> Et tu l'appliques ᅵ chaque fois que tu fais une modif quelque part !

> Merci, ï¿œa me semble trï¿œs bien mais :
> - comment gï¿œnï¿œre-t-on le tout (je fais un make ???)

Tu lances la commande "make" dans le rï¿œpertoire contenant un fichier du
nom "makefile".

> - est-il possible avec cette technique de le faire automatiquement
> (comme je le souhaitais, si un des fichiers css a ᅵtᅵ modifiᅵ, la
> concatï¿œnation se fait immï¿œdiatement) ?
> - du coup, c'est gᅵrᅵ dans le shell et plus via php (hors shell_exec...) ?

Ben, oui... c'est une maniï¿œre statique de maintenir un ensemble de
fichiers interdï¿œpendants. Tu peux aussi, utiliser PHP pour avoir une
version statique du site :

toto.html: toto.php
php toto.php >toto.html

Voir par exemple :
http://fr.wikipedia.org/wiki/Make

make est prï¿œsent dans tout systï¿œme Unix (Linux et autres) et existe
aussi pour Windows...

Olivier Masson

unread,
May 15, 2009, 12:00:59 PM5/15/09
to
Sergio a ï¿œcrit :

> Ben, oui... c'est une maniï¿œre statique de maintenir un ensemble de
> fichiers interdï¿œpendants. Tu peux aussi, utiliser PHP pour avoir une
> version statique du site :
>
> toto.html: toto.php
> php toto.php >toto.html
>
> Voir par exemple :
> http://fr.wikipedia.org/wiki/Make
>
> make est prï¿œsent dans tout systï¿œme Unix (Linux et autres) et existe
> aussi pour Windows...
>

Ah oui ï¿œa, je l'utilise depuis un paquet d'annï¿œes :) Mais bon, je
compile sans en savoir bcp plus...

Bon, merci. Disons que le make c'est bien, sans vraiment rᅵpondre ᅵ mon
problᅵme (si c'ᅵtait le cas, j'aurais simplement utilisᅵ cat sous shell)

0 new messages