母板页中的图片路径及页面链接路径设置

昨天写好一个应用程序,在localhost跑都OK的,发布到IIS后,别人一访问图片不显示,超链接的指向都找不到页面,

F12一看,路径都有问题,不会吧,我写的都是相对地址啊。

 

母版页中的图片我用的都是img,链接用的是a,

于是第一种方法就是将它们换成服务器端控件,加个runat="server",

这个解决办法会起作用是因为ASP.NET根据这一信息创建一个HtmlImage服务器控件,这个对象在母版页的Page对象实例化后创建,

此时,ASP.NET把所有路径解释为相对于母版页的位置。你可以使用同样的技术来修复<a>标签对其他页面的链接。

 

你还可以使用根路径语法,并用"~"字符作为URL的开头。

例如,下面这个<img>标签如果前面加"~/",则毫无歧义地指向网站的images文件夹中的butClose.gif文件。

遗憾的是,这种语法只对服务器端控件有效。

如果你要对普通的HTML产生同样的效果,你需要在链接里包含域名的完整的相对路径。这样的HTML代码难看且不可移植,所以不推荐使用。

<a runat="server" href="~/Data/xhEditorDemo.aspx">xhEditor</a>

<img id="barImg" runat="server" src="images/butClose.gif" alt="关闭/打开左栏"/>

如果嫌换成服务器端后写js脚本时ID写起来麻烦,

就用第二种方法ResolveUrl,如:

<img id="barImg" src='<%=ResolveUrl("images/butClose.gif")%>' alt="关闭/打开左栏" />

母版页中引入CSS或JS文件,也类似这样用:

<script src='<%=ResolveUrl("js/jquery-1.4.4.min.js")%>' type="text/javascript"></script>

另外一种是在masterpage里某处使用了background: url(...)这样的写法,

不废话,直接移到外部CSS文件中,最好CSS文件夹,images文件夹,masterpage文件三者在同一目录下(根目录),

剩下就是引入这个CSS文件,把你刚才写background: url(...)的地方换成class="..."。

然后问题应该就解决了,是滴吧!




posted @ 2011-11-10 14:28  peter cheng  阅读(322)  评论(0编辑  收藏  举报