将整个项目更改为根相对路径的简单方法

时间:2010-09-14 11:06:45

标签: asp.net relative-path

我继承了一个网站,其中包含使用相对路径设置的所有路径,仅当网站位于网络根目录时才有效。

我已将该网站放在虚拟目录中,并且没有一条路径正常工作。

<img src="/img/logo/BadCo.gif" width="156" height="55" alt="BadCo" />

我可以解决这个问题如下:

<img src='<%= ResolveUrl("~/img/logo/BadCo.gif") %>' width="156" height="55" alt="BadCo" />

但是,我不想手动更改整个项目中数百条路径的每一条路径,并且提出一个正则表达式进行替换会伤害我的小脑。

3 个答案:

答案 0 :(得分:2)

就个人而言,我不会将该网站放在虚拟目录中。

从Web根目录指定路径并不是什么坏事。这几乎就是网站最终的部署方式。

您采用的方法意味着每次要解析URL时都需要执行代码。这真的应该免费发生,它可以。

如果您使用Visual Studio的内置Web服务器进行开发,则可以轻松拥有在Web根目录中定义的站点。

如果没有,并且您使用的是XP,请考虑使用IISAdmin.NET。此工具允许您在IIS的本地副本上设置多个网站,并在需要时在它们之间切换。

http://iisadmin.codeplex.com/

答案 1 :(得分:1)

如果可行的话,你可以把它变成一个适合IIS的网站,然后给它分配一个不同的端口。

如果我想让一个网站正在使用IIS而不是Cassini,我会在我的开发机器上采用这种方法。所以一切都在 http://localhost:[portnumber]/

之下

如果你必须使用虚拟目录我就没有想法了。

答案 2 :(得分:0)

我想一个关键问题是这个应用程序有多大。

没有多少不同的地方可以放置网址。为什么不搜索

="/

='/

即等号,双引号或单引号,以及斜杠。这应该会导致大多数分配URL的地方。然后你会看到你设置这些东西的所有地方,比如src =和navigateurl =等等。

这将是一种痛苦。我不是说你要在十分钟内完成它。如果这是你今天需要完成的事情并且它是一个很大的应用程序,我不会接受它。但是,如果你正在努力改变和测试一周,我认为你可以先清理URL,然后看看测试中发生了什么。