Utilisation de liens relatifs à la racine du site dans Razor

J’ai un site Web qui fonctionne bien avec Razor (C #) tout le codage fonctionne correctement lorsque j’utilise mes tests locaux (WebMasortingx IIS).

Lorsque je le mets “en ligne” sur mon serveur, le site ne se trouve pas à la racine du site lui-même

Par exemple:

http: // intranet.mycompany.com/inform

C’est fondamentalement la “racine” de ma structure de dossiers, donc tous mes dossiers commencent à partir de là (fichier css default.cshtml … et ainsi de suite)

Mon “_PageStart.cshtml” le voit correctement lorsque j’accède à mon site à partir du lien http://intranet.mycompany.com/inform il me donne la disposition que j’ai configurée dans _PageStart.cshtml (et il montre vraiment la disposition + le rendu default.cshtml)

MAIS rien d’autre n’obtient le bon chemin, par exemple:

 

Le titulaire img est là, je peux le voir mais montre que le lien est cassé … quand je clique avec le bouton droit de la souris sur le support img et que je fais des propriétés pour voir où les fichiers devraient se trouver:

http: // intranet.mycompany.com/images/logos/hdr.png

Donc, il va à la racine “complète” pas la racine relative …

Comment puis-je résoudre ce problème?

Vous devez utiliser des chemins relatifs sur toute votre application:

~ ne fonctionnera pas dans le code HTML statique.

Tu peux écrire

  

ou

  

La première approche convient aux fichiers de mise en page où votre chemin relatif peut changer lorsque vous avez des URL de routage de longueur différente.

MODIFIER

En ce qui concerne votre question sur les liens normaux:

Lorsque vous créez un lien vers une autre page de votre application, vous ne spécifiez pas le fichier de vue en tant que cible, mais l’action qui génère une vue en tant que résultat. Pour cela, vous utilisez le HtmlHelper ActionLink :

 @Html.ActionLink("Linktext", "YourController", "YourAction") 

Cela génère automatiquement l’URL correcte:

 Linktext 

EDIT 2

Ok, pas de MVC – vous devez donc générer vous-même vos liens.

Vous devez également utiliser des chemins relatifs. Ne commencez aucun lien avec le caractère / !

 Link Link Link 

EDIT 3

Lors de l’utilisation de pages de disposition, vous pouvez utiliser la méthode d’extension Href pour générer une URL relative:

  

Utilisez Url.Content comme indiqué ci-dessous:

  

Je sais que ‘ ~ ‘ est ajouté par défaut, mais j’ai tendance à le changer pour que tous les chemins soient relatifs à mon fichier de code plutôt qu’à la racine de l’application, en utilisant ” .. ” par exemple. "../images/logos" etc