在网页中的引用(比如引用cssjsimg等对象)总的来说可以分为以下几种方式 view sourceprint?<%第一种方法%> <link rel=stylesheet type=text/css /> <%第二种方法%> <link rel=stylesheet type=text/css /> <%第三种方法%> <link rel=stylesheet type=text/css /> <%第四种方法%> <link <%=ResolveUrl(~/sitecss)%> rel=stylesheet type=text/css /> 下面我在分析一下这四种方法的优缺点 方法一 /url 用法 这个是从域名顶部开始查找文件 如果你的页面是x 引用的css文件时/css/sitecss 最后的css路径就是 也就是说它会忽略 后面的所有东西然后加上自身 局限性 如果你的网站是一个子网站比如在IIS下的一个网站中建立应用程序(而不是直接建立一个网站) 那么你网站的根目录就会是 问题来了因为引用都是根据url来判断的它根本无法区别你网站的根目录是什么所以解析出来的地址也会错误会把website都忽略掉 方法二 url 用法 这个是相对的路径 如果你的页面是x 引用的css文件时css/sitecss 最后的css路径就是 也就是说它会去除最后一个/后的东西然后加生自身 局限性 这个的局限性有个 第一如果你在masterpage中做了一个引用但是内容页却在不同的文件夹最后的引用是根据内容页来判断的所以就出错了 第二如果你用了UrlRewrite那url和实际文件系统是不同的那很明显也会出错 方法三 /url 用法 其实这个和方法二一样/ 是返回上一级的意思 如果你的页面是x 引用的css文件时/css/sitecss 最后的css路径就是 局限性 局限性和方法二一样 另外IIS默认不允许用 / 来返回父级所以要配置一下 方法四 <%=ResolveUrl(~/sitecss)%> 用法 这个用法和方法一差不多但是有个好处就是可以避免方法一的局限性 因为这个是靠服务器解析出来的而不是在客户端执行的所以能识别子网站 如果你的页面是x 引用的css文件时<%=ResolveUrl(~/sitecss)%> 最后的css路径就是 局限性 这个方法是万能的但是也不是完美的 因为要靠服务器解析所以当然不能所见即所得啦还有就是要多打那么多字很麻烦 |