此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

您现在的位置: 智可网 - 程序开发 - 微软开发专区 - .Net - .Net实例 - 正文
ASP.NET MasterPage 中图片路径的解决办法
教程录入:吴家声    责任编辑:446901797 作者:佚名 文章来源:本站原创
     一般而言,链接路径的表达有三种方式:绝对路径、相对路径和基于根目录的路径。另外对于ASP.Net服务器控件来说,还可以使用“~”来代替根目录来表示。
  在MasterPage和用户控件中,经常要使用一些图片作为背景或漂亮的按钮,但是在指定图片的src或者background时候,经常因为链接路径的问题而出错。
  1.使用绝对路径:使用形如“D:\xxx\xxx.gif”的绝对文件路径一般情况下是不可取的。可以考虑采取url的方法,写成http://xxxx/xx/xxx.gif”。但是缺点是不利于移植,例如现在站点的地址为http://www.xxx.Net,如果有一天站点更该http://www.xxx.com,则所有的链接地址都失效,需要进行更改,难以维护。
  2.使用相对路径:使用相对于页面位置的路径,比如“..\images\xxx.gif”,这样MasterPage和用户控件中都能正确显示,但是如果将继承MasterPage的页面放到不同的文件夹下,或者使用用户控件的页面不在同一文件夹,那么该页面又会找不到正确的图片位置了!
  3.基于根目录的路径:形如:<a href="/xxx/xxx.gif">这样的解决方法在ASP.Net2.0调试的时候,因为没有建立虚拟目录,并不能正确显示(我也不是很肯定,没有确认^_^)。而我在非服务器控件的Html标签元素上无法使用“~”来指定路径。
  那么,在设计时让图片可见,我们应该怎么来处理呢?我采用了CSS来完成这项工作。针对要显示图片的元素和控件,我们可以写一段简单的css来定位图片,因为css文件的位置是一般不会改变的(位于App_Theme/themename/xxx.CSS),这种方法也就行之有效了。
  .HideBar
  {
   height:56px;
   width:5px;
   cursor:hand;
   background-image: url(../../images/xxx.gif);
  }接下来我们只需要在相应的元素和控件的CSSclass中填入HideBar,就可以做到每个继承MasterPage或使用用户控件的页面都能正确显示图片了。
  我想应该还有其它更好的办法,也希望有人能指点一二。
  
  ——Robin Lu's Blog 
  
分享
打赏我
打开支付宝"扫一扫" 打开微信"扫一扫"
客户端
"扫一扫"下载智可网App
意见反馈
ASP.NET MasterPage 中图片路径的解决办法
作者:佚名 来源:本站原创
     一般而言,链接路径的表达有三种方式:绝对路径、相对路径和基于根目录的路径。另外对于ASP.Net服务器控件来说,还可以使用“~”来代替根目录来表示。
  在MasterPage和用户控件中,经常要使用一些图片作为背景或漂亮的按钮,但是在指定图片的src或者background时候,经常因为链接路径的问题而出错。
  1.使用绝对路径:使用形如“D:\xxx\xxx.gif”的绝对文件路径一般情况下是不可取的。可以考虑采取url的方法,写成http://xxxx/xx/xxx.gif”。但是缺点是不利于移植,例如现在站点的地址为http://www.xxx.Net,如果有一天站点更该http://www.xxx.com,则所有的链接地址都失效,需要进行更改,难以维护。
  2.使用相对路径:使用相对于页面位置的路径,比如“..\images\xxx.gif”,这样MasterPage和用户控件中都能正确显示,但是如果将继承MasterPage的页面放到不同的文件夹下,或者使用用户控件的页面不在同一文件夹,那么该页面又会找不到正确的图片位置了!
  3.基于根目录的路径:形如:<a href="/xxx/xxx.gif">这样的解决方法在ASP.Net2.0调试的时候,因为没有建立虚拟目录,并不能正确显示(我也不是很肯定,没有确认^_^)。而我在非服务器控件的Html标签元素上无法使用“~”来指定路径。
  那么,在设计时让图片可见,我们应该怎么来处理呢?我采用了CSS来完成这项工作。针对要显示图片的元素和控件,我们可以写一段简单的css来定位图片,因为css文件的位置是一般不会改变的(位于App_Theme/themename/xxx.CSS),这种方法也就行之有效了。
  .HideBar
  {
   height:56px;
   width:5px;
   cursor:hand;
   background-image: url(../../images/xxx.gif);
  }接下来我们只需要在相应的元素和控件的CSSclass中填入HideBar,就可以做到每个继承MasterPage或使用用户控件的页面都能正确显示图片了。
  我想应该还有其它更好的办法,也希望有人能指点一二。
  
  ——Robin Lu's Blog