Submitted by mika37 on
Bonjour,
Nous utilisons Drupal sur plusieurs serveurs de préproduction, parfois dans des sous répertoire et nous utilisons des urls relatifs de type : site/default/files/nomimage
Sauf que dès qu'on passe en url simplifiées ça en fonctionne plus, les images ne sont plus là... Quelle est la bonne pratique pour ne plus avoir ce genre de problème et ne pas être obligée de retapé le chemin entier quand on passe en url simplifiée.
Merci d'avance
L'explication est
Permalien Soumis par haza le 11 Mars, 2010 - 10:55
L'explication est simple.
Dans le cas des url non simplifiés, on a par exemple :
www.exemple.com/?q=node/1
Si ici on utilise une url relative de type site/default/files/nomimage (sans / au début), ceci donne au final :
www.exemple.com/site/default/files/nomimage
Ca fonctionne
Dans le cas des url simplifiés, on a par exemple :
www.exemple.com/node/1
Si ici on utilise une url relative de type site/default/files/nomimage (sans / au début), ceci donne au final :
www.exemple.com/node/1/site/default/files/nomimage
Ce ne marche plus
On pourrait donc conclure :
J'utilise /site/default/files/nomimage a la place de site/default/files/nomimage et le soucis sera reglé !
Oui ... et (surtout) non. site/default/filtes est le repertoire par defaut, il peut être changé. Et dans ce cas, ça voudrait dire que notre chemin ves l'image est fortement lié a la configuration du site. Ca, c'est mal :)
L'astuce, c'est d'utiliser la fonction file_directory_path() qui va se charger de retourner le bon chemin vers le "files" du sites. (et avec base_path() c'est encore plus joli)
Dans un template, ca pourrait donner quelque chose du genre :
<img src="<?php print base_path() . file_directory_path(); ?>/nomimage.jpg" alt="" />
Merci Haza, Dans le template
Permalien Soumis par mika37 le 11 Mars, 2010 - 15:51
Merci Haza,
Dans le template ok.
Pour ce qui est des images insérées dans les contenus, et notamment avec IMCE pour les tests / validations clients comment pratiquez-vous ?
Chemin en dur du serveur provisoire puis requêtes SQL sur le serveur définitif ?
? autrement
Merci pour vos retours.
Pas compris... Il me semble
Permalien Soumis par haza le 11 Mars, 2010 - 16:06
Pas compris...
Il me semble que IMCE fait rajoute ses fichiers avec un "/" devant l'url relative des fichiers/images. Pour le "mais il est où le files", devrait se débrouiller tout seul, vu qu'il sait où chercher les fichiers de toutes facon. Evidement, l'environnement de test/dev doit être identique a la prod dans ce cas là.
Bon sang mais bien sur ! J’ai
Permalien Soumis par emena le 24 Septembre, 2012 - 09:04
Bon sang mais bien sur !
J'ai tourné en rond avec ce problème pendant 2h hier soir. Le temps de trouver pourquoi mon url n'allait pas. Puis de me demander pourquoi il me rajoutait un /node/ ...
Bref, grand merci
EM