IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Problème d'arborescence (IIS)


Sujet :

Web Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Points : 60
    Points
    60
    Par défaut Problème d'arborescence (IIS)
    Bonjour,

    Je vais tenter d'expliquer le problème qui m'occupe :

    Le cas de figure est très simple, j'ai un site web hébergé localement et qui comporte l'utilisation de script(s) CGI (en PERL). Ceci est l'environnement de développement.

    - Ma configuration : Windows XP Pro et IIS 5.1

    - Le dossier contrenant le site : C:\Inetpub\wwwroot\mon_site\
    - Les pages HTML sont dans le sous-dossier : C:\Inetpub\wwwroot\mon_site\web
    - Le script PERL est dans le fichier : C:\Inetpub\wwwroot\mon_site\cgi\script.pl
    - Le répertoire virtuel utilisé par IIS est nommé "mon_site" et pointe vers le dossier C:\Inetpub\wwwroot\mon_site\

    Soit le fichier C:\Inetpub\wwwroot\mon_site\web\test.html qui contient un lien vers le script mentionné ci-dessus.
    Ce fichier HTML est accessible via l'adresse http://localhost/mon_site/web/test.html

    Pour atteindre le script CGI à travers l'arborescence du site, ce fichier contiendra la référence suivante ../cgi/script.pl

    Le script produit un code HTML simple qui est sensé afficher une image : C:\Inetpub\wwwroot\mon_site\web\images\image_01.jpg
    Le script contiendra dans son code une référence à ./images/image_01.jpg. Cela peut paraître bizarre et c'est justement là le problème, que je vais expliquer ci-dessous :

    En effet le problème et que, si le script est bien appelé correctement, l'affichage lui ne l'est pas. Et pour cause, la référence qui figure dans le code n'est pas juste. Pas juste dans le sens qu'il n'y a pas de dossier "images" dans le dossier "cgi".

    Cette référence à première vue erronée ne l'est pas du point de vue de l'environnement productif (serveur UNIX) alors que pourtant l'arborescence est la même dans cet environnement - du moins à partir de /mon_site/etc. (le reste est du ressort de l'hébergeur).

    La raison est selon moi que d'une manière ou d'une autre, la référence contenue dans le code HTML produit par le script est interprétée dans ce cas du point de vue du fichier appelant, soit du fichier test.html !!!

    Pourquoi ??? Là est la grande question ! Différence Windows / UNIX ? Configuration du serveur productif ?
    Et surtout, que faire pour avoir le même comportemnent dans l'environnement de développement que dans le productif.


    Voilà, merci d'avance à ceux/celles qui auront eu la patience de me lire jusqu'au bout et fait l'effort de comprendre ce problème

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut
    Bonjour,
    De manière générale, pour debugger ce genre de problème, tu peux déjà appeller directement http://hebergeur.fr/mon_site/image/image.jpg
    pour retrouver l'adresse correcte qui marche. Quand l'image s'affiche c'est bon.
    (à faire dans un navigateur web bien sûr).

    Ensuite, l'affichage de l'image est forcément demandé par ton navigateur web, par par le script Perl qui lui se contente de générer du texte HTML résultat.
    Donc si tu trouves un chemin qui marche pour afficher directement l'image,
    tu trouves le chemin que ton script perl doit utiliser dans son texte HTLM de retour.


    Pour ton cas particulier, c'est bizarre car justement je dirais que ton chemin doit marcher.
    Essaye de récupérer ton image directement et redonne-nous l'URL qui marche pour afficher l'image, ça aidera à comprendre d'où vient le pb.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Points : 60
    Points
    60
    Par défaut
    Premièrement, merci pour la réponse

    Citation Envoyé par 50Nio Voir le message
    le script Perl qui lui se contente de générer du texte HTML résultat.
    OK, ça c'est clair. Mais puisqu'il n'y a pas de fichier HTML "physique" (code HTML généré dynamiquement), comment est considéré ce code du point de vue de l'arborescence ?

    Ou pour dire les choses autrement, où se situerait dans l'arborescence le fichier HTML correspondant au code généré par le script ?

    Cela afin de pouvoir ajuster les références relatives de manière adéquate.

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut
    Ce fichier n'est pas présent sur le disque.
    Maintenant à chaque appel http, tu a %ENV en Perl qui contient les informations sur la page demandée et sur la session (l'environnement):

    Voir http://edu.ca.edu/selfhtml/cgiperl/i...#recapitulatif
    par exemple.

    Essaye d'afficher $ENV{"DOCUMENT_ROOT"} ou carrément tout ton %ENV.

    Mais encore une fois, si tu sais appeller ton image directement depuis ton navigateur web, tu vérifieras qu'elle est bien accessible via un accès http.
    Genre pour aller voir le logo google:
    http://www.google.fr/intl/fr_fr/images/logo.gif
    et dans le code source de www.google.fr on retrouve src="/intl/fr_fr/images/logo.gif"

    Essaye d'ouvrir:
    http://localhost/mon_site/web/images/image_01.jpg

    Essaye aussi de mettre un chemin absolu vers ton image et non un relatif.

Discussions similaires

  1. Problème de CGI/IIS/C++
    Par zoolook dans le forum IIS
    Réponses: 6
    Dernier message: 22/11/2007, 20h23
  2. Problème ASP NET + IIS + Framework .NET
    Par identifiant_bidon dans le forum ASP.NET
    Réponses: 5
    Dernier message: 04/06/2007, 13h42
  3. problème d'arborescence avec mes fichiers
    Par M4XiMUZ dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 12/04/2007, 17h52
  4. Problème asp et IIS
    Par Monbasinstinct dans le forum IIS
    Réponses: 12
    Dernier message: 14/02/2007, 02h06
  5. Réponses: 5
    Dernier message: 02/05/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo