asp.net母板页引用文件的路径问题
图片问题
非常好解决
<img runat="server" src="~/images/ad468x60.gif" alt="" />
加上runat="server" ,路径使用绝对路径~/基本上就OK了。
CSS文件引用
<link rel="stylesheet" type="text/css" href="style.css" />
这里神奇的就是link的文件的href是随着被访问文件的目录结构自动调整,说白了就考虑母版页引用的路径就可以了,其他不用费心。
比如在母版页同目录下的一个文件夹内的一个xxx.aspx引用的母版页,那么上面的语句在客户端就自动变为
<link rel="stylesheet" type="text/css" href="../style.css" />
前提就是<head runat="server"></head>必须有runat="server"
JS文件的引用
<script type="text/javascript" src="menu/jquery.min.js"></script>
这样的话在其他目录下的页面文件,客户端肯定就引用不到了
那么你需要这样处理
<script type="text/javascript" src='<%=ResolveUrl("menu/jquery.min.js")%>'></script>
<script type="text/javascript" src='<%=ResolveClientUrl("menu/ddsmoothmenu.js")%>'></script>
这是2种方式,在客户端的路径当然也会不一样,分别是:
<script type="text/javascript" src='/TLERP/menu/jquery.min.js'></script>
<script type="text/javascript" src='../menu/ddsmoothmenu.js'></script>
那么很明显ResolveClientUrl是相对路径,是比较好用的,当然ResolveUrl也有很多地方需要这样的绝对路径,其中TLERP是web应用的名字。
另外,如果你将这样的代码放在了<head>里面,将会报错:
控件包含代码块(即 <% ... %>),因此无法修改控件集合。