CSS文件被重复引用

3

我有一个使用主题、iframe和母版页的asp.net Web应用程序。我使用IE Web Developer和FF Firebug分析了这些页面,并发现每个页面都两次引用相同的CSS文件。我不知道这是因为母版页模型还是因为iframe的原因。有人知道如何只引用一次CSS吗?


你有我们可以查看的链接或者一些包含css的示例代码吗? - Ólafur Waage
6个回答

4
我曾有同样的问题,在我的情况下,我找到了原因 -
当添加到web.config时:
<pages styleSheetTheme="Default" theme="Default"></pages>
.css文件将被呈现两次,而不是只添加:
<pages theme="Default"></pages>
然后它将只呈现一次。

这就是我一直在寻找的。 - Jeffrey LeCours

1
如果您在配置中设置了页面主题,那么App_Themes/YourTheme文件夹中的所有.css文件都将自动被引用。
<system.web>
    <pages theme="ThemeName">
        <controls>
        </controls>
    </pages>
<system.web>

因此,您不需要向CSS文件添加任何引用。

但有个问题是,CSS文件将按字母顺序引用(据我所知,无法更改),因此,如果您希望一个.css文件覆盖另一个,请小心处理文件名。


1

你是从内容页面引用这个CSS文件吗?如果是的话,这会导致CSS被引用两次。你不需要从内容页面引用CSS,只需要从主页面引用即可。


1

iframe 是一个独立的渲染上下文,因此你无法合理地避免它需要加载 CSS。如果它使用与嵌入页面相同的样式表,那么是的,该样式表将被引用两次。


0
我猜你的答案是停止使用IFRAMEs。如果你需要使用可重复使用的内容块,可以嵌套主页。人们使用IFRAMEs的一个原因是当他们从远程站点提供内容时,但由于你说它正在调用相同的CSS文件,所以不是这种情况。关于IFRAME做了什么的更多信息会很有帮助。

0
我在我的某些aspx页面上遇到了相同的问题,但是我刚刚解决了它。我正在覆盖并设置一个基类中继承的StyleSheetTheme属性,该基类被每个aspx页面继承。现在,如果我在标记页中另外设置StyleSheetTheme,链接定义会呈现两次。当您手动设置Theme属性时,可能会发生相同的情况。

<%@ Page Title="My Page" StyleSheetTheme="DefaultTheme" Language="C#" MasterPageFile="~/Master.Master" AutoEventWireup="true"
    CodeBehind="Details.aspx.cs" Inherits="MyProject.Article.Details" %>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接