【发布时间】:2010-09-21 16:29:33
【问题描述】:
我尝试使用 IHttpModule 并设法将网址转换得很好, 但我所有的图片都返回了路径错误(都通过新的 url 目录)。
解决办法是什么?
【问题讨论】:
标签: asp.net url-rewriting asp.net-2.0 friendly-url
我尝试使用 IHttpModule 并设法将网址转换得很好, 但我所有的图片都返回了路径错误(都通过新的 url 目录)。
解决办法是什么?
【问题讨论】:
标签: asp.net url-rewriting asp.net-2.0 friendly-url
您可以尝试使用 URL 重写器,例如 IIRF。
使用 IIRF,您可以根据需要使用正则表达式解析传入的 URL,然后将其发送到正确的位置。
他们在 IIRF 下载中内置了有关如何执行所有这些操作的示例。
【讨论】:
您需要确保在图像上使用“~/”路径符号,并确保它们都是带有 runat='server' 的服务器控件。否则图片 url 不会被重写。
例如,如果您有一个从以下位置重写的页面:
/Item/Bicycle.aspx
到
/Item.aspx?id=1234
然后会发生这样的图像引用:
<img src='images/something.gif' />
会坏掉。因此,您必须这样做:
<asp:image imageurl='~/images/something.gif' runat='server' id='img1'/>
或者,您可以为图像使用绝对路径。或者您可以将尽可能多的内容推送到您的 .css 文件中。
【讨论】:
解决办法是什么?使用在 MVC 项目中启动并提升为独立状态的 .NET 3.5 中的新路由引擎。 :)
如果 Keltex 的建议不能解决您的具体问题,请查看 ResolveUrl 和 ResolveClientUrl。
【讨论】: