我尝试使用 IHttpModule 并设法将 url 转换得很好,但是我所有的图像都返回了路径错误(全部通过新的 url 目录)。
解决方案是什么?
我尝试使用 IHttpModule 并设法将 url 转换得很好,但是我所有的图像都返回了路径错误(全部通过新的 url 目录)。
解决方案是什么?
您需要确保在图像上使用“~/”路径符号,并确保它们都是带有 runat='server' 的服务器控件。否则图像 url 将不会被重写。
例如,如果您有一个从以下位置重写的页面:
/项目/自行车.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。
您可以尝试使用 URL 重写器,例如IIRF。
使用 IIRF,您可以根据需要使用正则表达式解析传入的 URL,然后将其发送到正确的位置。
他们在 IIRF 下载中内置了有关如何执行所有这些操作的示例。