我继承了一个网站,其中包含使用相对路径设置的所有路径,仅当网站位于网络根目录时才有效。
我已将该网站放在虚拟目录中,并且没有一条路径正常工作。
<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" />
但是,我不想手动更改整个项目中数百条路径的每一条路径,并且提出一个正则表达式进行替换会伤害我的小脑。
答案 0 :(得分:2)
就个人而言,我不会将该网站放在虚拟目录中。
从Web根目录指定路径并不是什么坏事。这几乎就是网站最终的部署方式。
您采用的方法意味着每次要解析URL时都需要执行代码。这真的应该免费发生,它可以。
如果您使用Visual Studio的内置Web服务器进行开发,则可以轻松拥有在Web根目录中定义的站点。
如果没有,并且您使用的是XP,请考虑使用IISAdmin.NET。此工具允许您在IIS的本地副本上设置多个网站,并在需要时在它们之间切换。
答案 1 :(得分:1)
如果可行的话,你可以把它变成一个适合IIS的网站,然后给它分配一个不同的端口。
如果我想让一个网站正在使用IIS而不是Cassini,我会在我的开发机器上采用这种方法。所以一切都在 http://localhost:[portnumber]/ 。
之下如果你必须使用虚拟目录我就没有想法了。
答案 2 :(得分:0)
我想一个关键问题是这个应用程序有多大。
没有多少不同的地方可以放置网址。为什么不搜索
="/
和
='/
即等号,双引号或单引号,以及斜杠。这应该会导致大多数分配URL的地方。然后你会看到你设置这些东西的所有地方,比如src =和navigateurl =等等。
这将是一种痛苦。我不是说你要在十分钟内完成它。如果这是你今天需要完成的事情并且它是一个很大的应用程序,我不会接受它。但是,如果你正在努力改变和测试一周,我认为你可以先清理URL,然后看看测试中发生了什么。