`
niunan
  • 浏览: 721350 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

母版页和相对路径

    博客分类:
  • .NET
阅读更多

一个经常让开发人员疑惑的问题是母版页是如何处理相对路径的。如果你使用的是静态文字,这一问题不会困扰你。不过,如果你加入了<img>标签或者指向其他资源的HTML标签,问题就可能发生。

当你把母版页和内容页放在不同的目录时,问题就发生了。把母版页和内容页分放到不同的目录,这是大型网站推荐使用的最佳实践。实际上,微软建议你在专门的文件夹里保存所有的母版页。不过,如果你不够小心,使用相对路径时会带来问题。

例如,假设你把母版页放在一个叫做MasterPages的子文件夹里,并在母版页里加入了如下的<img>标签:

假设文件\MasterPages\banner.jpg存在,这看起来是行得通的。甚至在Visual Studio设计环境会出现图片。但是,如果你在另一个子文件夹里创建了一个内容页,路径就会被解释成相对于那个文件夹。如果文件在那里不存在,就会得到 一个破损的链接而看不到图片。更糟的是,如果有一幅具有相同文件名的另外一个图片,你会不经意地得到一幅错误的图片。

这样的问题之所以会发生,是因为<img>标签是普通的HTML。所以,ASP.NET不会接触到它。遗憾的是,当ASP.NET创建 内容页的时候,这个标签就不合适了。相同的问题出现在向其他页面提供相对链接的<a>标签以及用来把母版页链接到样式表 的<link>元素。

要解决这一问题,你可以预先把URL写成相对于内容页面的地址。不过这会带来混淆,限制母版页使用的范围,并且产生在设计环境里不正确显示母版页的负面效应。

另一个快捷的解决方案是把图片标签变成服务器端控件,这样ASP.NET就会修复这个错误:

 

这个解决办法会起作用是因为ASP.NET根据这一信息创建一个HtmlImage服务器控件。这个对象在母版页的Page对象实例化后创建,此时,ASP.NET把所有路径解释为相对于母版页的位置。你可以使用同样的技术来修复<a>标签对其他页面的链接。

你还可以使用根路径语法,并用"~"字符作为URL的开头。例如,下面这个<img>标签毫无歧义地指向网站的MasterPages文件夹中的banner.jpg文件。

遗憾的是,这种语法只对服务器端控件有效。如果你要对普通的HTML产生同样的效果,你需要在链接里包含域名的完整的相对路径。这样的HTML代码难看且不可移植,所以不推荐使用。

 

摘录自:http://book.51cto.com/art/200809/91060.htm

刚刚在做项目中时遇到的这个问题,呵呵...特此记录....项目进展缓慢....老大要发火啦...郁闷....

中餐牛腩粉¥4.2

今天在解决这个问题的时候另一个问题又出现了,现在我要在母版页引入jquery的文件,按照上面的方法我写成   

<script src="js/jquery.js" type="text/javascript" runat="server"></script>

可是在运行的时候却出错了,说是jquery.js中的第12行的$符号不知道是什么意思,然后我把runat="server"去掉后就又运行成功了,看来是不能加runat="server"这个属性了,可是这样的话我在另一文件夹中套用母版页的时候又会出现上面这个相对路径的错误了,经到CSDN论坛发贴问,解决方法如下:

<script src='<%=ResolveUrl("~/js/jquery.js") %>' type="text/javascript"></script>

第一次知道有ResolveUrl这个方法,还真不错,呵呵...

 

 

 

分享到:
评论

相关推荐

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    16.4.5 母版页和相对路径 16.4.6 通过配置文件应用母版页 16.5 高级母版页 16.5.1 和母版页类交互 16.5.2 动态设置母版页 16.5.3 嵌套母版页 16.6 总结 第17章 网站导航 17.1 多视图页面 17.1.1...

    ASP.NET4高级程序设计(第4版) 3/3

    内容简介  《ASP.NET 4高级程序设计(第4版)》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了...16.4.5 母版页和相对路径 559 16.4.6 通过配置文件应用母版页 559 16.5 高级...

    asp.net课件——留言板的编写

    运行时,内容页和母版页的相对路径是相对于内容页的。 14.5 首页设计: 首页通常展示系统的主要功能和最新信息。在留言板系统中,首页可能展示最新的留言列表,通过查询`tb_LeaveWord`表并按时间排序。用户可以通过...

    asp.net母版里图片的显示

    在ASP.NET中,母版页(Master Page)是一种强大的布局工具,它允许开发者定义网站的通用结构和样式,而内容页则可以根据需要插入具体的内容。本文将深入探讨如何在母版页中正确显示图片,以及可能遇到的问题和解决...

    asp.net2.0中css失效的解决方法

    1,CSS文件路径不正确这个问题属于Web开发中的基础问题,一般采用相对路径会出现这样的问题,或者样式文件写在了母版页里面,在内容页与母版页不在同一级目录下时会出现这样的问题。此时你要清楚Web中相对路径的规则...

    ASP.NET 路径问题的解决方法

    在ASP.NET开发过程中,经常会遇到路径问题,尤其是在处理相对路径和绝对路径时更为突出。本文将详细介绍如何利用`~/`符号来解决这类问题,并提供具体的示例来帮助理解。 #### 相对路径与绝对路径 在ASP.NET应用...

    ASP.NET应用程序开发七大技巧.doc

    这解决了使用相对路径(如`./image/about.bmp`)在部署时可能出现的问题,特别是在处理ASCX控件在不同目录层次的引用时,`~`符号提供了更强大的灵活性。 2. 保持页面滚动条位置: 在处理大量输入控件的表单时,保持...

    Cookie,Session开发大全

    "使用母板用cookie登录,在母版页验证"这一主题,指的是在多页面应用中,母版页(Master Page)通常承载了共用的头部和底部,包括登录状态的显示。通过在母版页中检查Cookie中的Session ID,可以实现跨页面的用户...

    c-课件章-网站建设与网页制作(与“样式”有关文档共48张).pptx

    此外,母版页(master page)与内容页(content page)的概念在大型网站中常见,母版页定义全局的布局和样式,而内容页则填充具体的网页内容,这种设计模式有助于保持网站的统一性和易于管理。 在网站开发中,VS...

    ASP.NET 2.0中CSS失效的问题总结

    当CSS文件路径设置为相对路径时,如果内容页与母版页不在同一级目录下,可能导致样式无法加载。为确保正确引用,可以使用绝对路径或了解并正确运用相对路径的规则。如果不确定,尝试更改路径为绝对路径来排除这个...

    buildermp3

    要注意的是,输入后的MP3文件是绝对路径,如“C:My Documentsjda.mp3”,必须手动将其更改为“〈SrcDir〉jda.mp3”这种相对路径格式(“〈SrcDir〉”变量一定要有)。这一步,我们也可以在后面批量更改路径时对其...

    多媒体计算机辅助教学优品文档.ppt

    声音和视频的路径选择,可以是相对路径,便于课件在不同计算机上运行,也可以是绝对路径,确保特定资源的准确引用。 总的来说,多媒体计算机辅助教学借助PowerPoint这样的工具,能够打破传统教学模式的局限,提升...

    2021-2022计算机二级等级考试试题及答案No.13907.docx

    在Java中,文件路径可以使用绝对路径或相对路径。对于Windows系统,路径分隔符通常使用反斜杠(`\`)。 **选项分析**: - A."./1.txt":这是相对于当前目录的路径。 - B."../my/1.txt":这是一个相对路径,表示从上...

    web应用程序设计复习题.pdf

    - `.master`、`.asax`、`.aspx`和`.ascx`文件扩展名分别对应母版页、全局应用程序类文件、Web窗体页和用户控件。 ### 其他相关知识点 ***中Session和Cookie的使用,IIS服务器的作用,以及.NET框架与***开发环境的...

    the-center-chain-distribution-system.zip_The Chain_配送网络

    ASP.NET 2.0引入了诸如网页生命周期管理、母版页、自定义错误处理和配置管理等新特性,为开发者提供了更为强大的开发环境。 2. SQL Server:Microsoft SQL Server是一种关系型数据库管理系统,广泛应用于企业级数据...

    网页编辑器ckeditor和ckfinder配置步骤分享

    - 对于ASP.NET中的母版页,可能需要获取控件的实际客户端ID:`CKEDITOR.replace('("_","$") %&gt;')` 4. **配置CKEditor**:CKEditor的配置主要在`config.js`文件中进行。以下是一些常见的配置参数: - `config....

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    2) 修正控件使用母版页时FIREFOX浏览器无法使用的BUG。 3)修正上传页面的一处语言显示BUG。 4) 修正当上传索引GIF文件时显示错误信息的BUG。 5) 增加上传远程图片到服务器的选项,并且远程图片同样...

Global site tag (gtag.js) - Google Analytics