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

ASP.NET MVC Discussion :

[ASP.NET] Masterpage en tant que lien introuvable


Sujet :

ASP.NET MVC

  1. #1
    Invité
    Invité(e)
    Par défaut [ASP.NET] Masterpage en tant que lien introuvable
    Bonjour,

    Mon environnement est .NET 3.5 et VS2008.

    Je suis en train de "factoriser" les ressources de plusieurs projets (js, css, image, masterpage, globalasax, etc).
    Concernant ma masterpage qui contient beaucoup de codes redondant entre les projets (le menu, les includes js/css, etc), j'ai créé une masterpage qui hérite d'une autre masterpage (via MasterPageFile="~/AppParent.Master").

    Lorsque ma masterpage parente est dans mon arborescence (au même niveau que ma masterpage enfant (view/shared) ou au niveau du projet) je n'ai pas de problème (l'application web fonctionne, la masterpage est trouvée).
    Seulement, cette masterpage va être partagée grâce au mécanisme des ressources "en tant que lien". Lorsque je ne met plus cette masterpage dans mon arborescence mais que je l'inclue en tant que lien, elle est introuvable lors de l'exécution.
    Je ne sais pas d'ou peut venir le problème : j'ai essayé de modifier les propriétés de ce fichier lié, notamment "action de génération" ("Contenu") et "Copier dans le repertoire de sortie" ("Toujours copier") mais ça ne change rien.

    Merci d'avance à ceux qui pourront m'aider.
    Dernière modification par Invité ; 17/06/2015 à 11h09.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    J'ai eu un problème du même genre une fois avec les lien de VS.

    Dans mon souvenir, le fichier est physiquement présent dans un dossier, le lien se fait de manière virtuel via les propriétés du projet de VS.

    les masterpages (ou layers) fonctionnent par "conventions" et l'utilisation de MasterPageFile="~/AppParent.Master" indique à MVC que la page AppParent.Master se trouve PHYSIQUEMENT à la racine du site.

    Je ne sais pas où votre masterpage est réellement (physiquement j'entend) mais le virtualpath pour y accéder doit être valide (~/Communs/AppParent.Master par exemple) il faut donc que l'interpréteur (apsx ou razor) puisse accéder à la version physique de la masterpage et non pas à un lien virtuel qui ne sera utilisé et résolu que par VS lors de la compilation.De plus il y a de forte chance que l'interpréteur ne puisse pas accéder à une ressource en dehors du root du site pour des raisons de sécurité.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci dadv pour ta réponse.
    Mon fichier se trouve physiquement au niveau de la solution (car il est partagé entre plusieurs projets). Le fichier liéé est lui à la racine de mon projet.
    Je suis en MVC3 donc pas de Razor.
    Il faudrait que je fasse un test sur un serveur pour voir si ma masterpage est bien à la racine de mon projet lors du déploiement. Mais je pense que oui. Le problème est p-e du au IIS local.
    Je vais faire plus de tests et reviens vers toi.
    Merci.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je reviens vers vous concernant mon problème de fichier "en tant que lien" qui n'est pas recopié.
    Après quelque tests, je m'aperçois que le fichier est bien recopié lors du déploiement sur un vrai serveur IIS (j'ai réalisé un déploiement sur un serveur de test).
    Mais en revanche sur le serveur IIS embarqué avec visual studio, les fichiers "en tant que lien", ne sont pas recopié (en tout cas ils sont introuvable, même en parcourant des les sous-répertoires depuis l'URL).
    Ceci me pose quelques problèmes car si c'est fichier sont "en tant que lie"n c'est pour effectuer une factorisation des ressources inter-projet.
    Si quelqu'un a déjà eut un problème similaire avec IIS local merci de venir partager votre expérience.

    Merci d'avance

    EDIT : voici mon arborescence si ça peut aider :
    Nom : capturefichierentantquelien.png
Affichages : 181
Taille : 32,6 Ko

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je viens de trouver une solution à mon problème.
    J'ai ajouté dans mon *.csproj :
    <Target Name="BeforeBuild">
    <Copy SourceFiles="%(Content.Identity)"
    DestinationFiles="%(Content.Link)"
    SkipUnchangedFiles='true'
    OverwriteReadOnlyFiles='true'
    Condition="'%(Content.Link)' != ''" />
    </Target>
    Ceci permet de copier automatiquement les fichiers liés dans le répertoire de sortie.
    Ce lien m'a beaucoup aidé : http://mattperdeck.com/post/Copying-...g-MSBuild.aspx

    Merci de votre aide.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    merci bien pour l'idée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de bord avec image en tant que lien
    Par gids01 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/05/2006, 20h03

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