Submitted by chdom on
Salut à tous,
j'ai un soucis avec Drupal qui me supprime mes CSS stockées dans un répertoire css/ à la racine de l'installation lorsque je désactive un module.
J'ai résolu le problème en supprimant les droits en écriture pour le répertoire mais c'est pénible lors des mises à jour.
Quelqu'un a-t-il eu quelque chose de similaire et résolu le problème ?
Merci
Dom
Je crois que le premier
Permalien Soumis par yched@drupal.org le 9 Mars, 2007 - 11:38
Je crois que le premier point c'est pourquoi as tu des css à cet endroit là ?
Comme n'importe quel autre fichier additionnel (.css, .js, .tpl.php...), ces fichiers sont a priori "rattachés" à quelque chose (un module ou un thème) - tu devrais logiquement les garder dans le dossier de ton module ou de ton thème. les mettre ailleurs va à l'encontre de la modularité de ton site.
+1 Tout pareil.
Permalien Soumis par drupalfrance le 9 Mars, 2007 - 15:17
+1
Tout pareil.
Le comportement que tu
Permalien Soumis par Zigazou le 9 Mars, 2007 - 18:38
Le comportement que tu décris me paraît plutôt bizarre... Pourquoi Drupal chercherait-il à effacer les fichiers d'un répertoire dont il n'a pas l'usage ?
D'autant qu'un tel comportement rendrait impossible l'installation de logiciels non liés à Drupal sur le même serveur (ce qui est mon cas).
Comment en es-tu venu à la conclusion que c'était Drupal qui supprimait les fichiers de ce répertoire ?
La reponse est relativement
Permalien Soumis par tostinni le 13 Mars, 2007 - 07:04
La reponse est relativement simple.
Drupal 5 est dote d'une nouvelle fonctionalite, le "CSS preprocessor" qui permet de condense tous les fichiers CSS des modules actifs (desormais chaque module a son propre fichier CSS pour simplifier l'ecriture d'un theme). Ce preprocesseur creer donc un repertoires files/css dans lequel il stocke ce fameux "condense" de CSS.
Apres lorsque tu installes/desinstalles un module, il faut qu'il mette a jour le(s) fichier(s) *.css qu'il a stocke a cet endroit, donc il efface tout et regenere son fichier...
La solution: ne pas mettre tes CSS dans
files/css
c'est un repertoire que Drupal considere sien et donc fait ce qu'il en veut ;)Ça me paraîtrait tout à
Permalien Soumis par Zigazou le 13 Mars, 2007 - 08:02
Ça me paraîtrait tout à fait logique s'il s'agissait bien de files/css. Mais chdom a précisé que son répertoire css se trouvait à la racine de son installation et non dans le répertoire files.
Il est toujours possible que chdom se soit emmêlé les pinceaux dans la description de son problème.
Le probleme c'est que si par
Permalien Soumis par tostinni le 13 Mars, 2007 - 18:28
Le probleme c'est que si par defaut on precise que le repertoire "files" est "." du coup ca va creer le repertoire CSS a la racine du site, par contre a mon avis c'est vraiment pas une bonne pratique.
Ceci dit j'avais fait le test en local en mettant un repertoire CSS a la racine de Drupal et il n'etait pas efface lors de la modification des modules, c'est pour ca que je pensais que son repertoire etait sous "files"...
D'ailleurs si on regarde la fonction d'effacement
le
file_create_path('css')
retourne bien le bon chemin.Le probleme c'est que si par
Permalien Soumis par Zigazou le 13 Mars, 2007 - 19:45
Le probleme c'est que si par defaut on precise que le repertoire "files" est "." du coup ca va creer le repertoire CSS a la racine du site, par contre a mon avis c'est vraiment pas une bonne pratique.
Tout à fait d'accord. Je trouve d'ailleurs ça bizarre que Drupal autorise ce genre de comportement, il suffirait d'uploader un fichier index.php et boum ! plus de site...
Par contre, il ne faut pas que le répertoire files ait certains droits pour que Drupal l'accepte ?
Par contre, il ne faut pas
Permalien Soumis par tostinni le 13 Mars, 2007 - 20:04
Par contre, il ne faut pas que le répertoire files ait certains droits pour que Drupal l'accepte ?
A priori il ne verifie pas ca lors du changement de repertoire.
Tu peux voir ca en mettant "." au lieu de files et il ne va pas broncher...
Par contre pour le coup de l'upload d'un index.php, par defaut les fichiers php sont interdits d'upload (bcp trop dangereux de tolerer ce genre de fichiers)...
Merci à tous pour vos
Permalien Soumis par chdom le 14 Mars, 2007 - 15:15
Merci à tous pour vos messages. Je confirme bien que le répertoire css est à la racine du site et non pas dans files/. Pourquoi cette architecture , me direz-vous ? parce que j'ai écrit un thème et que le thème appelle ces CSS, tout simplement si j'ose dire. Je suis toujours pas plus avancé. En fait le comportement ne s'opère pas en dev local (sur Windows) mais en ligne (sur linux). Je suis complètement perdu. La seule façon d'éviter les soucis a été de changer les droits d'accès au répertoire. Drupal ne pouvant plus les supprimer il remonte l'erreur. Je vais jeter un oeil sur ce CSS preprocessor
Merci à tous pour vos
Permalien Soumis par Zigazou le 14 Mars, 2007 - 16:33
Merci à tous pour vos messages. Je confirme bien que le répertoire css est à la racine du site et non pas dans files/.
Pourrais-tu vérifier dans admin/settings, Paramètres du système de fichiers, que le chemin du système de fichiers est bien 'files' et non '.' ?
Pourquoi cette architecture , me direz-vous ? parce que j'ai écrit un thème et que le thème appelle ces CSS, tout simplement si j'ose dire.
Ces fichiers CSS devraient normalement se situer dans le même répertoire que ton thème. C'est une convention qui permet de gérer plusieurs thèmes avec la même installation de Drupal.
Salut, merci encore pour les
Permalien Soumis par chdom le 25 Avril, 2007 - 11:37
Salut,
merci encore pour les réponses. le chemin de fichiers est bien files dans admin/settings, et puis je ne veux pas gérer plusieurs thèmes avec la même installation de Drupal, celui-ci étant fixé une fois pour toutes.
Bref, c'est sur qu'en mettant mes CSS avec mon thème personnalisé j'aurai plus de soucis. Enfin j'espère.... Mais techniquement je ne comprends toujours pas pourquoi il en veut à mes fichiers....