我有一个实现URL路由的ASP.NET 4.0应用程序。这为我提供了没有扩展名的网页网址(例如/ Articles / {title})
其中一些页面包含相对链接。当我从Visual Studio测试网站时,相对链接指向/ Articles / {title} / mylink。但是,当我将我的网站部署到共享主机帐户时,相同的相对链接指向/ Articles / mylink。
您可以在http://blackbeltcoder.com/Articles/asp/creating-website-thumbnails-in-asp-net看到问题。顶部附近图像的链接被破坏。从Visual Studio进行测试时,此页面工作正常。 {title}被假定为目录。但是,一旦部署,{title}将被假定为页面名称。
如果我将“/”附加到上面的URL,它会按预期工作。但是我如何确保它始终有效?
任何人都可以帮我理解这个吗?
答案 0 :(得分:0)
经过对本网站和另一个也使用URL路由的网站的大量测试后,我终于能够定义发生了什么。
我将描述此网站在主机帐户上的行为方式为“正常”。在我的桌面上运行时,我的其他网站在托管帐户 AND 上的工作方式与此相同。 (虽然其他网站不以这种方式使用相对链接。)
奇怪的情况是我在桌面上运行新网站。浏览器会自动将“/”附加到我的路由URL,就好像它们是目录一样。
之所以这样做是因为我创建了具有相同名称的物理目录!如果我删除了物理目录,它会将URL视为对文件的引用。
所以对我来说主要的问题是我在测试这个奇怪的情况时开发了网站。因此,解决方案是A)确保将“/”附加到所有这些链接,以便将它们视为目录,或者B)改变我设计的目录结构。