小编参加完软考接着敲牛腩,发现之前敲得页面加载不出来图片,真是奇怪了,于是开始了探索之路,开始我的图片路径是这样的:
<div id="top">
<ahref="WebNiunan.aspx">
<img src="images/niunanlogo.jpg"/></a>
<a href="http://www.tg029.com"target="_blank">
<imgsrc="images/tg029logo.gif" /></a>
</div>
加载出来的页面是这样的:
于是在网上查找资料,发现楠哥的博客里有这个问题,这才知道是路径问题,看见楠哥修改为这个样子:http://localhost:51733/admin/images/niunanlogo.jpg 我也是照葫芦画瓢,但是还是不成功,于是找救兵,救兵对这个问题不太确定,回去找方法了,我又找了另外一个救兵,这位很厉害,一上来马上就知道是路径问题,然后修改了几个代码就OK了,我的那个佩服啊!
其实我的代码和正确代码就差一个单词,因为楠哥存放项目的文件夹admin和images文件夹,这两个是平行的。但是图片显示是存放在admin文件夹里面,于是我也把两个并行文件夹写一块,导致了错误。
我突然想到模板方法,依葫芦画瓢也要灵活,不能没有自己的思考,和容易走火入魔的。
故事还没完,我的第一个救兵也回来了,带我科普了一下路径问题,我也和大家分享一下。
路径设置一般有这些,你有弄混过吗?
“~/ 、./ 、../ 、 / 、http://www.cnblogs.com/
下面举一个小例子,帮助大家理解
比如你的工程是Webapplication1(url是:http://localhost/webapplication1/webform1.aspx)
1、Request.ApplicationPath就是/Webapplication1(昨天师哥还讲了request,今天就遇到了,真是高兴啊!)
2、如果是站点就直接返回”/”;
3、~/ 可以用在需要设置路径的控件比如:imagebutton,image等 以及链接ascx文件,配置文件. (这个很少遇到,以后再深挖)
4、../ 的好处是可以不知道文件夹的名字知道层次结构就可以了 (我的牛腩用的就是这个,好处是以后我发布网站,图片加载很容易)
5、/ 的好处是针对根路径,如果本地目录和服务器目录一致,那直接用/就可以保证路径正确,这种情况很少.
6、
1)Request.ApplicationPath注意如果没有虚拟目录就直接返回/,那你程序里面就不要设置/
比如 Request.ApplicationPath+”/images/a.gif” 如果是站点 就是等于 “//images/a.gif”,错误的
2)如果有虚拟目录就是 “Webapplication1/images/a.gif” 没有/的 Request.ApplicationPath发挥虚拟目录名称,如果是站点就返回/
注意:
~/ 类似,不过只用服务端的空间可以识别;
/ 针对目录
./ 当前目录
../ 相对当前目录的上层目录
详解:
比如你的工程是Webapplication1(url是:http://localhost/webapplication1/webform1.aspx)
Request.ApplicationPath 就是Webapplication1/
~/ 也是Webapplication1/