Pourquoi clean url "détruit" certaines adresses url de mon code ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous
Je suis en train d'activer les urls simplifiées (suppresion du ?q=). Je pensais que c'était une tache mineur mais malheureusement je me rends compte que beaucoup de mes liens ne fonctionne plus si je n'ajoute pas

<?php
 
echo base_path()
?>

devant. Je ne comprends pas pourquoi et ça m'oblige à rester tous les liens du site un par un...

Comment se fesse que ça fasse ça? Pourquoi mes chemins relatifs à index.php semblent endommagés? et pourquoi pas tout le temps? par exemple j'inclus un un plugin jquery en début de page : il marche très bien sur les pages avec alias et ne s'inclut pas correctement sur les pages qui n'ont pas encore d'alias. Je ne pige pas...

Forum : 
Version de Drupal : 

Sans clean-urls, la page courante est "/?q=node/2", c'est à dire "/", avec pour option "q=node/2". Les liens relatifs présents dans la page sont donc relatifs à "/".

Avec clean-urls, la page courante est "/node/2". Les liens relatifs présents dans la page le sont donc par rapport à "/node".

En outre, si tu écris "/node/2/" au lieu de "/node/2", les liens deviennent relatifs à "/node/2".

Cela explique pour Drupal émet toujours des URLs remontant jusqu'à la racine du site.

Merci pour la réponse rapide !
Je ne saisis pas très bien : physiquement mes liens se trouvent toujours dans la page index.php à la racine du site puisque c'est là que tout se passe dans drupal. Comment l'url affichée peut-elle modifier cette logique? Drupal intervient-il quelque part là dedans sans que je le sache?
par exemple ce lien (dans un page.tpl.php) marche sans les urls simplifiées

<?php
<script type="text/javascript" src="files/pluing_jquery.js"></script>
?>

mais cleans urls je dois ajouter base_path au départ. Pourtant dans les deux cas ce lien est appelé depuis l'index.php de Drupal non?

Désolé d'être lourd mais j'avoue que la logique de ce que tu me dis m'échappe complètement :-) Pour moi un chemin c'est une logique d'emplacement physique de fichiers...

La question n'est pas comment Drupal perçoit la chose, mais comment le navigateur voit les URLs.

Pour le navigateur, "/node/2" est le fichier "2" dans le répertoire "node". Les liens relatifs présents dans cette page seront donc relatifs au répertoire "node". Dans ton cas, le lien vers "files/plugin_jquery.js" sera donc vers "/node/files/plugin_jquery.js".

Par contre, avec "/?q=node/2", pour le navigateur il s'agit du fichier "/" à la racine. Les liens relatifs sont donc relatifs à la racine.