2011-07-25 16 views
2

我有一个页面调用大约32个样式表。在另一页,它调用< 30.在其他浏览器这两个页面看起来很好,但在IE浏览器的第一页(8,7)上,最后2个样式表没有被调用,它完全搅乱布局。我不确定如何在drupal中解决这个问题。IE不加载30多个样式表(drupal)?

编辑: 另外,据我所知,有超过30个不是很好,但这是我们的网站最初是如何开发的。我们有一堆使用“drupal_add_css”添加syleshets的主题和模块。

我试图通过去管理/设置/性能压缩CSS,但样式表链接不起作用,因为我们正在使用我们的测试网站(http:// mysite:123)的端口号和生成的链接是http://mysite/public/css/random_string.css

+4

“我有一个页面可以调用大约32个样式表。” =这是主要问题。你真的应该有一个样式表。 –

+0

虽然我同意,但这是一个交给我处理的网站,它有许多模块和主题一起工作。 – AllisonC

+0

实际上限制是31。 IE10将此限制增加到65534. http://blogs.msdn.com/b/ieinternals/archive/2011/05/14/internet-explorer-stylesheet-rule-selector-import-sheet-limit-maximum.aspx –

回答

3

可以使用管理/设置/性能和设置优化CSS来实现。这将推出1个CSS而不是32+。如果您正在开发并希望在IE中工作,则需要在更改css后清除缓存。我们倾向于在开发&时将其关闭,以便在IE或生产环境中进行测试。

所有最好的, 烬


回答艾莉森的评论(太长了注释块)

嗨AlisonC,

使用端口一个网站,我从来没有尝试过与Drupal。我建议确保您的网站的settings.php设置正确。可能需要为您的文件夹设置一个特殊名称(请参阅settings.php顶部的说明),或者您可能需要检查$ base_url并确保它具有端口。

如果还是不行,还有用于缓存的CSS,同时开发(http://drupal.org/project/ie_css_optimizer)的模块。我没有使用它,但至少对于你的情况可能有点不同。 (输入后,我注意到另一个用户也推荐它)。

我已经假设你还在发展,才去住我会删除IE的CSS优化器模块(或至少将其关闭),因为它主要是一个开发者的帮手。我认为这是我的知识的极限。祝你好运!

--Ember

+0

通过drupal加载当我们这样做时,现在出现的样式表链接无效。当我尝试去它时,它说没有找到页面。 – AllisonC

+0

嗨AlisonC,你在更改设置后清除了Drupal缓存吗?此外,清除您的IE缓存,以防万一它保留的URL的东西。我们通常不使用站点的端口,我们只使用测试域名,所以我不确定端口号码可能会如何干扰。 --ember – ember

+0

这不是它缓存它,它提供给样式表的链接不包括端口号,所以它不会加载它。 – AllisonC

0

他们是如何被调入呢? 30个人<link href="blahblah.css">电话?或从@import指令的其他样式表?请记住,如果存在语法错误,则样式表的进一步处理将失败。

+0

使用<链接href语法加载它们...使用drupal_add_css – AllisonC

2

这是IE浏览器的一个已知限制 - 你不能有任何给定的网页上超过31个样式表。

参考文献:

你的唯一真正的解决办法是,所以你甲肝样式表结合e更少的个人CSS文件(使用Drupal的“优化CSS”选项)。但我承认这可能是一个痛苦,如果你试图调试你的代码等。

实际上,它是可能加载到31多个样式表进入IE,但对于任何超过31,你需要通过另一个CSS文件中的@import行来完成。这在Drupal站点的上下文中是不可能的,每个样式表都是由一个模块添加的,并且您无法控制Drupal如何将它们添加到页面中。

-1

实际上有一个模块来处理这个问题。我没有亲自使用它,但它确实有5K +用户(Drupal 6)。