我有一个使用主题,iframe和母版页的asp.net网络应用。我已经使用IE Web开发人员和FF Firebug分析了这些页面,并注意到每个页面都引用了两次相同的css文件。我不知道这是因为母版页模型还是因为iframe。任何人都知道如何只引用一次css?
答案 0 :(得分:4)
我遇到了同样的问题,我发现了我的情况 -
添加到web.config时:
<pages styleSheetTheme="Default" theme="Default"></pages>
.css文件将被渲染到源两次,因为它只是添加:
<pages theme="Default"></pages>
然后它只会呈现一次。
答案 1 :(得分:1)
您是否从内容页面引用此CSS文件?如果是这样,这将导致CSS被引用两次。您不需要从“内容”页面引用CSS,只需要在主页面中引用CSS。
答案 2 :(得分:1)
iframe是一个独特的渲染上下文,所以你真的无法合理地解决它需要加载它的CSS。如果它使用与嵌入页面相同的样式表,那么,样式表将被引用两次。
答案 3 :(得分:1)
如果您在配置中设置了网页主题,则会自动引用App_Themes / YourTheme文件夹中的所有.css文件。
<system.web>
<pages theme="ThemeName">
<controls>
</controls>
</pages>
<system.web>
因此,您无需添加对CSS文件的任何引用。
虽然有一个问题,CSS文件将按字母顺序引用(据我所知,没有办法改变这个),所以如果你想要一个.css文件覆盖另一个.css文件你需要小心文件名。
答案 4 :(得分:0)
我猜你的答案是停止使用IFRAME。如果需要使用可重用的内容块,则可以嵌套母版页。人们使用IFRAME的一个原因是他们从远程站点提供内容时,但由于你说它调用的是同一个CSS文件,情况并非如此。
有关IFRAME正在做什么的更多信息会有所帮助。
答案 5 :(得分:0)
我仅在部分aspx页面上遇到了相同的问题,并且我已将其修复。我在每个ASPX页面继承的基类中覆盖和设置StyleSheetTheme
属性。现在,如果我在标记页面中另外设置了StyleSheetTheme
,则链接定义将呈现两次。手动设置Theme
属性时可能会发生同样的情况
<%@ Page Title="My Page" StyleSheetTheme="DefaultTheme" Language="C#" MasterPageFile="~/Master.Master" AutoEventWireup="true"
CodeBehind="Details.aspx.cs" Inherits="MyProject.Article.Details" %>