Aller au contenu

Messages recommandés

bonjour,

je suis en train de faire un site, je suis débutant en php/MySQL.Dans mes fichiers "include", j'appelle des feuilles de styles et des fichiers javascript.

Mais je n'avais pas calculé que les chemins relatifs de mes feuilles de styles et fichiers javascript se faisait par rapport à la page internet où on est et non par rapport au fichier include lui-même...

Du coup, quand j'ai créé un fichier php (avec les mêmes include) dans un dossier "admin", mes chemins ne correspondaient plus...

Je sens que je suis pas très clair, donc voici mon architecture de dossiers dans le répertoire web:

web

|--- admin/

|- index.php ( include du fichier head.inc.php )

|--- include/

|- head.inc.php ( appels vers des feuilles de styles et fichiers javascript )

|- index.php ( include du fichier head.inc.php )

J'ai cherché sur le net, et à priori ils utilisent la variable __DIR__ pour avoir le chemin absolu du fichier "en cours".

Dans mon fichier include, j'ai donc essayé avec ce code:

<link href="<?php echo __DIR__; ?>/assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">
mais il cherche mon fichier à cette adresse:
/volume1/web/bsa/workspace/info/assets/bootstrap.min.css[/code]
 et du coup il ne le trouve pas...

est-ce que j'ai une autre solution qui peut m'envoyer directement sur cette adresse 
[CODE]/bsa/workspace/info/assets/bootstrap.min.css[/code]

?

MERCI

Modifié par bryce426
Lien vers le commentaire
Partager sur d’autres sites

Je sais pas si c'est la meilleure solution, j'ai résolu le problème en mettant ça dans mon fichier include:


<?php $racine = str_replace('/volume1/web', '', __DIR__).'/../'; ?>

<link href="<?php echo $racine; ?>assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">

du coup je peux inclure mon fichier depuis n'importe quelle page de mon site et à priori je peux aussi changer mon site pour le mettre à la racine le jour où je le mets en prod, les chemins resteront toujours bons.

EDIT: je viens de tester de déplacer mon site complet sur un tout autre dossier (tjs dans le dossier web quand même ^^) et effectivement ça fonctionne sans soucis.

Modifié par bryce426
Lien vers le commentaire
Partager sur d’autres sites

C'est ce que j'avais au début.

Le soucis c'est que selon quel fichier appelle les fichiers include, le dossier de départ ne sera plus le même (si il est un ou plusieurs dossiers plus bas par rapport à la racine de mon site) et donc les liens relatifs ne fonctionneront plus.

Lien vers le commentaire
Partager sur d’autres sites

À ce moment là tu utilises des chemins absolus dont la racine est le dossier web et non la racine du disque du NAS, c'est à dire sans le /volume1/web (auquel il faut d'ailleurs préférer /var/services/web).

Par exemple, pour importer le fichier /volume1/web/css/style.css dans la page web, il faut utiliser le chemin absolu /css/style.css :


<link rel="stylesheet" type="text/css" href="/css/style.css" />

En tout cas si tu rencontres des difficultés à utiliser des liens relatifs, c'est que l'arborescence de ton site est trop complexe.

Lien vers le commentaire
Partager sur d’autres sites

merci pour ta réponse.

En fait, mon site est en dév du coup il est placé dans web/bsa/workspace/info/, mon problème c'est que le jour où je vais le déplacer directement à la racine sur web/ quand il sera en prod mes liens risque de pointer au mauvais endroits.

Donc ce que tu veux dire c'est qu'entre mon site en dév et celui en prod, je dois me placer à la même profondeur de dossier pour que mes liens fonctionnent dans les 2 cas?

Bref désolé pour mes interrogations de noob :P

Lien vers le commentaire
Partager sur d’autres sites

En fait, mon site est en dév du coup il est placé dans web/bsa/workspace/info/, mon problème c'est que le jour où je vais le déplacer directement à la racine sur web/ quand il sera en prod mes liens risque de pointer au mauvais endroits.

Avec des chemins relatifs ça ne posera aucun problème.

Donc ce que tu veux dire c'est qu'entre mon site en dév et celui en prod, je dois me placer à la même profondeur de dossier pour que mes liens fonctionnent dans les 2 cas?

Avec des chemins relatifs, la profondeur de dossier n'a aucune importance.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.