2010-12-11 56 views
1

我有一个实现URL路由的ASP.NET 4.0应用程序。这为我提供了没有扩展名的网页网址(例如/ Articles/{title})具有扩展名的URL的相对链接

其中一些页面包含相对链接。当我从Visual Studio测试站点时,相关链接指向/ Articles/{title}/mylink。但是,当我将我的网站部署到共享主机帐户时,相同的相对链接指向/ Articles/mylink。

您可以在http://blackbeltcoder.com/Articles/asp/creating-website-thumbnails-in-asp-net处看到问题。靠近顶部的图像链接已损坏。从Visual Studio进行测试时,此页面正常工作。 {title}被认为是一个目录。但是,一旦部署,{title}被假定为页面名称。

如果我在上面的URL中追加“/”,它会按预期工作。但是,我怎样才能确保它始终有效?

任何人都可以帮助我理解这一点吗?

+0

此问题仍然无法解决。我花了几个小时在网上搜索。但事实是,我只是不明白是什么导致了差异,因此不知道在哪里寻找解决方案。 – 2010-12-11 23:23:22

回答

0

经过与本网站和另一个也使用URL路由的广泛测试后,我终于能够定义发生了什么。

我将描述此网站在托管帐户上的行为方式为“正常”。在我的桌面上运行时,我的其他网站同样适用于主机帐户。 (虽然其他网站没有使用这种方式的相对链接。)

奇怪的情况是当我在我的桌面上运行新的网站。浏览器会自动将“/”附加到路由URL中,就像它们是目录一样。

而这样做的原因是因为我创建了具有相同名称的物理目录!如果我删除物理目录,它会将URL视为对文件的引用。

所以对我来说最主要的问题是我在开发这个网站的同时测试这个奇怪的例子。因此,解决方案是A)确保“/”被附加到所有这些链接,因此它们被认为是目录,或者B)改变我设计的目录结构。