这是我的项目中在2-3个不同文件中引用相同图像的三种方式:
url(<% =QDAAB.Constants.SiteURL %>images/Docs/Plan/myImage.jpg)
url(~/images/Docs/Plan/myImage.jpg);
url(../images/Docs/Plan/myImage.jpg);
我对这种相对的绝对路径感到有点困惑。如何以这样的方式引用此图像:无论图像位于何处,它始终显示并且永不丢失。以上三种参考方式中的哪一种方法才能实现我的目标?或者是否有其他方式来引用图像?
希望问题很清楚。 我是.NET的初学者,刚刚开始尝试一些东西。
上述代码行究竟是什么意思?比如,Constants.URL
是什么?什么是“〜”和“......”在做什么?
这是在其中一个页面中使用图像的位置。当我将其更改为“../ ..”时,图像显示出来,之前不是。
<td align="center" style="background-image: url(../../images/Docs/Plans/myImage.jpg);
答案 0 :(得分:2)
无论图像位于什么文件夹中,这些都不会“神奇地”找到您的图像。您将始终必须为链接中的图像提供部分路径以呈现该图像。
但是,在这三个中,我建议第二行url(~/images/Docs/Plan/myImage.jpg);
作为完成你需要做的事情的最佳方式。
.NET中的“〜”是框架的特殊字符,它在您网站的根目录开始路径。它基本上说,无论请求来自哪个目录,都要转到根目录并从那里开始你的路径。
'../'是标准的HTML语法,意味着上一个目录,然后开始寻找你的路径。
例如,假设您的网站位于www.domain.com。这是你的文件夹结构
Images
Docs
Plan
CSS
Admin
SomeFolder
SomeFolderSubFolder
Default.aspx (your default document when you get to your site)
<强>实施例强>
如果您使用的是default.aspx,那么您图片的手工编码网址将为(/Images/Docs/Plan/myImage.jpg)
,因为您现在位于网站的根目录。
如果您在SomeFolder中,则图片的手动编码网址为(../Images/Docs/Plan/myImage.jpg)
,因为您必须上 1 目录才能访问您网站的根目录图像目录位于。
如果您使用的是SomeFolderSubFolder,那么图片的手工编码网址将为(../../Images/Docs/Plan/myImage.jpg)
- 因为您需要上 2 目录才能到达您网站的根目录你的图片文件夹是。
现在,通过使用url(~/images/Docs/Plan/myImage.jpg);
方法,您不必担心知道您的站点中有多少目录,它将始终从站点根目录开始查找。上面用以下代码行替换的每个示例都将始终正确地渲染图像。
修改强>
好的,所以你正在尝试使用内联样式。您可能/应该能够这样做:
<td align="center" style="background-image: url(<%= Server.MapPath("~/images/Docs/Plans/myImage.jpg") %>);></td>
或者,使用../方法没有任何问题,您只需要记住文件夹结构中的位置。最后,如果您要在样式表中而不是内联中声明此样式,那么图像相对于页面的位置并不重要,只是它们与样式表FYI相关的位置。
<td align="center" class="tdWithImages"></td>
styles.css的
#tdWithImages{background-image: url(../Images/Docs/Plan/myImage.jpg);}