2012-10-03 46 views
0

在我的webapp中,我有一个文件夹Views。在这个文件夹中有几个.aspx页面。我不直接在webapp中使用渲染内容,而是使用ajax在webapp根目录下的主aspx页面中请求内容。ajax aspx页面中包含的图像的相对路径

现在,当我引用图像时,“images/image.png”将起作用,因为图像引用存在于根上的aspx页面中。当我将其更改为“/images/image.png”时,由于根由虚拟IIS文件夹确定,因此这将不起作用。

我怎样才能有一个干净的参考例如“/images/image.png”?

回答

0

首先可能是最优雅的,请在服务器上运行的元素,并使用根reletive网址:

<img src="~/images/image.png" alt="image" runat="server" /> 

这会自动翻译你的src价值为路径,将您当前的位置解析。但是,有一个警告。如果你这样做,其上包括网页,asp.net可以在这里创建一个不正确的值,因为如果你是一个目录下就可以演变成

<img src="../images/image.png" alt="image" /> 

。因此,如果您将此结果包含在应用程序根文件夹的页面中,那么您的值可能不正确。我还没有看到解决这个问题的好方法。但是,如果文件不存在,它会显示警告。

或者,您可能要手动设置的根路径这样的网页:

<img src="<%=Request.ApplicationPath %>/images/image.png" alt="image" /> 

这将变成一个路径始终从站点的根来:

<img src="/AppPath/images/image.png" alt="image" /> 

显然,这有点冗长。此外,如果引用的文件不存在,您将无法看到任何警告,因为它将被动态构建。