在母版页处理js、css、img等相对路径问题
母版页是个很方便的东西,不过假如你在母版页使用了
<script src="js/js.js" type="text/javascript">
这样的相对路径
子页面和母版页在同一目录倒是可以,但是一旦有了子目录层次就会发现,找不到文件了~
解决方法其实比较简单
一、图片与超级链接(Image、HyperLink)
首先对于普通的img、a标签,可以添加runat=”server”属性来让.net自行处理,或者干脆使用image与hyperlink服务端控件
<img src="images/demo.jpg"> <a href="demo.aspx">demo</a> //改成如下 <img src="images/demo.jpg" runat="server" /> <a href="demo.aspx" runat="server">demo</a> //或者 <asp:Image ID="img_Demo" ImageUrl="~/images/demo.jpg" runat="server" /> <asp:HyperLink ID="hpl_Demo" runat="server" NavigateUrl="demo.aspx" Text="demo"></asp:HyperLink>
个人比较倾向与添加runat=”server”的做法。
二、样式表文件(Style)
样式表我觉得是最简单的,因为直接放在母版页的head里有自动匹配了~ 这个就不再赘述了~
三、脚本文件(Script)
脚本有点麻烦~ 因为它既不会自动匹配路径,又不能添加runat=”server”属性(因为.net会把runat=”server”的脚本当作服务端代码处理)
这里需要用到一个叫做ResolveUrl的方法(Page.ResolveUrl(string path))
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script> <script src='<%=ResolveUrl("js/jquery-1.3.2.min.js") %>' type="text/javascript"></script>
这样就OK了~