2009-08-13 09:22 by chenkai, 1240 visits, 收藏, 编辑

最近项目中涉及到引用多模板切换后台页面问题, 在作出母版页后内容页无法完整引用母版页中的CSS样式.

注意:我说的是不完整引用CSS样式 而不是不能引用. 到这估计有人会说这是母版页中的URL重置问题, 其实不是.
母版页中有多处使用相对路径语法引用图像,样式表,Javascript文件或其他页面子类的URL资源, 如果模板页和内容页在同一个目录下,这样的代码能够正常运行, 反之如果不在,就出现所谓的母版页的URL重置问题. 导致内容页无法正确引用资源.这个问题容易解决.

母版页URL重置解决方案:
A:在定义母板页引用URL资源时, 使用项目中的绝对路径来定义, 例如引用一个图片<img src="/IssuesNetworkUI/Images/index.jpg"/>
或者在服务器控件中使用相对URL或与应用程序相关的URL来代替静态标记. 例如同意是图片 <asp:Image ImageUrl="~/Images/Index.jpg">
这样就能保证内容页面完整引用

问题是:我在母板页中使用绝对路径 在该母板页下效果也正常显示, 但惟独有一个页面CSS样式引用进来了 证明不是URL重置问题 但是样式引用不完整 打乱原来的Div+CSS的布局. 当初我以为是引用页面编码格式问题,但尝试后发现问题并在这. 解决方法如下:

我直接把母板页 引用的样式拖拽到Notepad编辑器中发现整个CSS编码格式为默认的 ANSI

这个问题就明白了, 大多是在VS2008生成的CSS文件格式引用页面资源一般定义为UTF-8格式.

如果直接将"ANSI"格式的文件添加进去,由于编码的问题,使得index.aspx页面都不到css文件里面的信息或者出现引用不完全的现象打乱了页面Div+CSS布局,而导致控制不了样式.这时只要将文件的编码格式修改成"UTF-8"格式添加项目中重新引用. 添加到项目中效果可以呈现出来