重写问题
在我的一生中,我无法让相对图像路径在使用 VS 的开发服务器和发布到远程 IIS 服务器之间的用户控件内一致工作。我不想通过添加 runat="server"
使我的图像成为服务器标签。我希望它是严格的客户端,并且我不想使用任何骗局代码黑客。我想解决断开连接的问题,所以这是我的问题:
我的图像存储在~/images
中。
我的用户控件存储在~/usercontrols/anothersubfolder
中.
当我这样做时...
<img id="myimage" src="../../Images/help.png" alt="" />
...使用 VS 开发服务器 (localhost) 时会加载镜像,但当我部署到远程 IIS 虚拟目录时不会加载镜像。但是,当我这样做时...
<img id="myimage" src="<%=Request.ApplicationPath %>/Images/help.png" alt="" />
...当我远程发布但不使用开发服务器时它可以工作!
我需要一个既适用于 VS 开发服务器又适用于远程发布的解决方案。正如我所说,我不想添加 runat="server"
到我的图像标签或使用任何代码黑客。这里存在一个脱节,我想知道如何解决这个问题。
最佳答案
尝试这样:
<img src="~/Images/indicator.gif" border="0" alt="" runat="server" />
Avoiding problems with relative and absolute URLs in ASP.NET
Control.ResolveUrl versus Control.ResolveClientUrl versus VirtualPathUtility.ToAbsolute
关于ASP.NET WebForms : Why do relative paths within user controls work locally, 但部署时不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866865/