asp.net 模版爷引用 路径问题,ResolveClientUrl和ResolveUrl使用

今天在导入页面的时候发现我用的文件夹下的母板页引用的文件无效

文件的路径没有改变

在网上找了好长时间

都没得到解决 最后...

终于找到了

当你的母版与你的页面不在一个目录下的时候

你母版引用的图片,css,js等将会出现路径问题而导致客户端浏览器加载失败,导致不能正确出效果。

思路:由于纯html代码asp.net服务器不做处理,所以需要在服务器端处理一下

1. 图片问题

非常好解决

加上runat="server" ,路径使用绝对路径~/基本上就OK了。

2. CSS文件引用

这里神奇的就是link的文件的href是随着被访问文件的目录结构自动调整,说白了就考虑母版页引用的路径就可以了,其他不用费心。

比如在母版页同目录下的一个文件夹内的一个xxx.aspx引用的母版页,那么上面的语句在客户端就自动变为

前提就是必须有runat="server"

 3.  JS文件的引用

这样的话在其他目录下的页面文件,客户端肯定就引用不到了

那么你需要这样处理

这是2种方式,在客户端的路径当然也会不一样,分别是:

那么很明显ResolveClientUrl是相对路径,是比较好用的,当然ResolveUrl也有很多地方需要这样的绝对路径,其中TLERP是web应用的名字。

另外,如果你将这样的代码放在了里面,将会报错:

控件包含代码块(即 <% ... %>),因此无法修改控件集合。

原因我不说了,你将引用的东西放在里即可,哪怕是和

之间。

关于ResolveClientUrl和ResolveUrl的使用 问题 两个方法都是传递一个相对的 URL,然后返回一个相对于当前客户端浏览器的相对URL地址
但是两者的返回值,却截然不同
ResolveClientUrl返回相对于当前页面下文件的地址
ResolveUrl则返回页面所在应用程序下的相对地址
例如:
页面:~/Student/main.aspx
图像:~/Images/copy.gif
(这里~表示应用程序根目录)
使用一:
resolveClientUrl=Page.ResolveClientUrl("Images/copy.gif")
resolveUrl=Page.ResolveUrl("Images/copy.gif")
在页面main.aspx里使用copy.gif图像,则使用标题上的两种方法返回的结果如下
ResolveClientUrl:Images/copy.gif
ResolveUrl:/Student/Images/copy.gif

使用二:
resolveClientUrl=Page.ResolveClientUrl("~/Images/copy.gif")
resolveUrl=Page.ResolveUrl("~/Images/copy.gif")
在页面main.aspx里使用copy.gif图像,则使用标题上的两种方法返回的结果如下
ResolveClientUrl:../Images/copy.gif
ResolveUrl:/Images/copy.gif

结论
所以在使用ResolveClientUrl和ResolveUrl的时候一定要注意两者的区别
在使用相对URL地址时一定要在前面加上(~)或(~/),这样就万无一失了
不过使用这两种方法返回的物理路径(Server.MapPath),都是一样的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部