2010-12-11 29 views
1

J'ai une application ASP.NET 4.0 qui implémente le routage d'URL. Cela me donne des URL de page sans extension (par exemple/Articles/{titre})Liens relatifs avec des URL sans extension

Certaines de ces pages contiennent des liens relatifs. Lorsque je teste le site à partir de Visual Studio, les liens relatifs pointent vers/Articles/{title}/mylink. Cependant, lorsque je déploie mon site sur un compte d'hébergement partagé, le même lien relatif pointe vers/Articles/mylink.

Vous pouvez voir le problème au http://blackbeltcoder.com/Articles/asp/creating-website-thumbnails-in-asp-net. Le lien vers une image près du sommet est cassé. Cette page a bien fonctionné lors de tests à partir de Visual Studio. {titre} était supposé être un répertoire. Mais, une fois déployé, {title} est supposé être le nom de la page.

Si j'ajoute "/" à l'URL ci-dessus, cela fonctionne comme prévu. Mais comment puis-je m'assurer que cela fonctionne toujours?

Quelqu'un peut-il m'aider à comprendre cela?

+0

Ce problème n'est toujours pas résolu. J'ai passé des heures à chercher sur le web. Mais la vérité est que je ne comprends tout simplement pas ce qui cause la différence, et je ne sais donc pas où chercher une solution. –

Répondre

0

Après de nombreux tests avec ce site Web et un autre qui utilise également le routage d'URL, je suis enfin en mesure de définir ce qui se passe.

Je vais décrire la façon dont ce site se comporte sur le compte d'hébergement comme "normal". C'est de la même manière que mon autre site fonctionne à la fois sur le compte d'hébergement et lorsqu'il est exécuté sur mon bureau. (Bien que l'autre site n'utilise pas les liens relatifs de cette façon.)

Le cas impair est lorsque je cours le nouveau site sur mon bureau. Le navigateur ajoute automatiquement "/" à mes URL routées, comme s'il s'agissait de répertoires.

Et la raison pour laquelle c'est parce que j'ai créé des répertoires physiques avec les mêmes noms! Si je supprime le répertoire physique, il traite l'URL comme une référence à un fichier.

Donc le principal problème pour moi est que j'ai développé le site tout en testant avec ce cas bizarre. Par conséquent, la solution est A) assurez-vous que "/" est ajouté à tous ces liens afin qu'ils soient considérés comme des répertoires, ou B) modifiez la structure de répertoire que j'ai conçue.