CSS文件引用了两次

时间:2009-02-18 18:14:42

标签: asp.net css

我有一个使用主题,iframe和母版页的asp.net网络应用。我已经使用IE Web开发人员和FF Firebug分析了这些页面,并注意到每个页面都引用了两次相同的css文件。我不知道这是因为母版页模型还是因为iframe。任何人都知道如何只引用一次css?

6 个答案:

答案 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" %>