【问题标题】:CSS file referenced twiceCSS 文件被引用两次
【发布时间】:2009-02-18 18:14:41
【问题描述】:

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

【问题讨论】:

  • 您是否有我们可以查看的链接或您如何包含 css 的一些示例代码?

标签: asp.net css


【解决方案1】:

我遇到了同样的问题,我发现了我的情况 -
添加到 web.config 时:
<pages styleSheetTheme="Default" theme="Default"></pages>

.css 文件将被渲染到源两次,而不是仅添加 :
<pages theme="Default"></pages>
然后它只会被渲染一次。

【讨论】:

  • 这就是我要找的。​​span>
【解决方案2】:

您是否从内容页面引用此 CSS 文件?如果是这样,这将导致 CSS 被引用两次。您无需引用内容页面中的 CSS,只需引用母版页即可。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      如果您在配置中设置页面主题,则会自动引用 App_Themes/YourTheme 文件夹中的所有 .css 文件。

      <system.web>
          <pages theme="ThemeName">
              <controls>
              </controls>
          </pages>
      <system.web>
      

      因此,您无需添加任何对 CSS 文件的引用。

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

      【讨论】:

        【解决方案5】:

        我猜你的答案是停止使用 IFRAME。如果您需要使用可重用的内容块,您可以嵌套母版页。人们使用 IFRAME 的一个原因是当他们从远程站点提供内容时,但既然你说它调用的是同一个 CSS 文件,事实并非如此。

        有关 IFRAME 正在做什么的更多信息会有所帮助。

        【讨论】:

          【解决方案6】:

          我只在我的一些 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" %>

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-01-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-11-26
            • 2021-09-16
            相关资源
            最近更新 更多