浅谈网页中各种链接引用方法


在网页中的引用(比如引用css,js,img等对象),总的来说可以分为以下几种方式

  view sourceprint?<%--第一种方法--%>

  <link href="/site.css" rel="stylesheet" type="text/css" />

  <%--第二种方法--%>

  <link href="site.css" rel="stylesheet" type="text/css" />

  <%--第三种方法--%>

  <link href="../site.css" rel="stylesheet" type="text/css" />

  <%--第四种方法--%>

  <link href="<%=ResolveUrl("~/site.css")%>" rel="stylesheet" type="text/css" />

  下面,我在分析一下这四种方法的优缺点

  方法一:    /url

  用法:

  这个是从域名顶部开始查找文件

  如果你的页面是:http://dozer.cnblogs.com/article/1.aspx

  引用的css文件时:/css/site.css

  最后的css路径就是:http://dozer.cnblogs.com/css/site.css

  也就是说,它会忽略 http://dozer.cnblogs.com 后面的所有东西,然后加上自身

  局限性:

  如果你的网站是一个子网站,比如在IIS下的一个网站中建立应用程序(而不是直接建立一个网站)

  那么你网站的根目录就会是:http://www.test.com/website

  问题来了,因为引用都是根据url来判断的,它根本无法区别你网站的根目录是什么,所以解析出来的地址也会错误,会把"website"都忽略掉

  方法二:  url

  用法:

  这个是相对的路径

  如果你的页面是:http://dozer.cnblogs.com/article/1.aspx

  引用的css文件时:css/site.css

  最后的css路径就是:http://dozer.cnblogs.com/article/css/site.css

  也就是说,它会去除最后一个"/"后的东西,然后加生自身

  局限性:

  这个的局限性有2个:

  第一:如果你在masterpage中做了一个引用,但是内容页却在不同的文件夹,最后的引用是根据内容页来判断的,所以就出错了。

  第二:如果你用了UrlRewrite,那url和实际文件系统是不同的,那很明显也会出错。

  方法三:     ../url

  用法:

  其实这个和方法二一样,../ 是返回上一级的意思

  如果你的页面是:http://dozer.cnblogs.com/article/1.aspx

  引用的css文件时:../css/site.css

  最后的css路径就是:http://dozer.cnblogs.com/css/site.css

  局限性:

  局限性和方法二一样

  另外,IIS默认不允许用 ../ 来返回父级,所以要配置一下

  方法四:     <%=ResolveUrl("~/site.css")%>

  用法:

  这个用法和方法一差不多,但是有个好处,就是可以避免方法一的局限性

  因为这个是靠服务器解析出来的,而不是在客户端执行的,所以能识别子网站

  如果你的页面是:http://www.cnblogs.com/dozer/article/1.aspx

  引用的css文件时:<%=ResolveUrl("~/site.css")%>

  最后的css路径就是:http://www.cnblogs.com/dozer/site.css

  局限性:

  这个方法是万能的,但是也不是完美的

  因为要靠服务器解析,所以当然不能所见即所得啦,还有就是要多打那么多字,很麻烦



相关阅读:
Tuning工具Statspack的几个使用误区
教你迅速手动定制Windows XP系统的启动画面
破除一些网站复制、右键限制
如何在MySQL数据库中定义外键
浅析Oracle用户权限分配的具体方法
javascript图片自动缩放和垂直居中处理函数
javascript 获取特定的 CSS属性值
磁盘管理--umount
让插入到 innerHTML 中的 script 跑起来的代码
SQL Server复制技术
Exchange环境中的 IIS 锁定和 URLscan 配置(1)
SQLServer中的切割字符串SplitString函数
innerHTML 和 getElementsByName 在IE下面的bug 的解决
PHP sprintf()函数用例解析
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 CMS SQL jQuery C# C++ java Android IOS oracle MongoDB PostgreSQL SQLite 交通频道 宁乡-来宾 仙桃-荆门 丹阳-黄冈 上饶-宁海 启东-海北 德宏-安庆 滨州-兰州 上饶-阳泉 温州-张家界 昌都-瓦房店 乐山-南阳 云浮-南宁 鹤壁-如东 益阳-鄂州 青州-达州 义乌-楚雄 平湖-秦皇岛 眉山-宜兴 库尔勒-迁安 靖江-汕尾 鄂尔多斯-茂名 西宁-锦州 兰州-枣庄 萍乡-上饶 呼和浩特-桐庐 丽江-湛江 吉安-清远 上虞-承德 衡水-郴州 章丘-娄底 普洱-益阳 亳州-海宁 仪征-青州 玉树-昆山 安吉-巩义 崇左-泰州 阿克苏-拉萨 宁乡-宿州 丹东-玉林 深圳-菏泽 包头-瓦房店 蓟县-黄冈 哈密-石河子 吕梁-肇庆 衢州-玉树 南通-启东 阿勒泰-徐州 阿勒泰-汕尾 仪征-桐乡 锦州-红河 临汾-黄石 哈尔滨-天门 长沙-桐乡 信阳-大丰 晋中-本溪 大同-阜新 遂宁-镇江 荆门-海西 吉安-克拉玛依 廊坊-安庆 阜阳-启东 龙海-新密 洛阳-石嘴山 周口-漳州 河源-玉溪 乌兰浩特-吉安 义乌-新余 乳山-迁安 潍坊-桂林 福州-那曲 宁海-扬中 辽阳-邵阳 昆山-临汾 丽江-克拉玛依 贵港-绥化 大连-德清 镇江-德州 喀什-雅安 招远-章丘 邢台-金昌 衡阳东-赤壁北 大石桥-驻马店 长春-滕州 枣庄-许昌东 海林-缙云 枣庄-福清 威宁-草河口 济南-全州南 荣成-常州北 四平-葛根庙 林口-宁安 通辽-西胡尔清 三明北-达州 安庆-霸州 泰山-吉安 贵阳北-余姚北 隆化-北台子 浩良河-东二道河 衡水-杨村 哈尔滨-阜阳 嘎拉德斯汰-马架子 小白-泰康 扶余-查布嘎 道州-诸暨 朱家沟-平山 凌源-大连 库都尔-哈尔滨西 曲靖-武夷山 包头-石家庄北 成吉思汗-镇赉 沧州-南岔 大陆号-锡林呼都嘎 怀化-宁波 保定东-邵阳北 桐梓-霍州 深圳-黔江 东胜西-驻马店 丰都-重庆北 金昌-渠县 交城-高碑店 资中-峨眉 洛阳龙门-常州北 宣汉-乌鲁木齐 无锡-新乡 武威-中宁 芷江-进贤南 公营子-通州西 任丘-锦州南 青岭子-东边井 益阳-向塘 永康-青县 锦州-王岗 长兴-合川 敖头-平山 松青-兴隆镇 庄桥-嘉善南 兖州-通辽 公主岭-安顺 枕头峰-砬子河 双峰北-咸宁 南岔-齐齐哈尔 张掖-三门峡 海安县-宣威 角美-福州 阳谷-周口 三门峡-邵东 仙游-温州南 东莞东-深圳 东明村-孤山子 乐清-蚌埠南 渠县-砀山 福巨-朝格温多尔 四马架-庆安 嘉祥-沂南 亳州-龙市 沈阳-化德 临泽南-酒泉南 三都县-桂林西 桂林-洛阳龙门 梅河口-北岗

Copyright © 2016 phpStudy |