为什么我的CSS“有时”变得棘手

时间:2010-09-15 06:32:12

标签: ruby-on-rails css

我的网站表现得很奇怪。布局有时很好,有时候很麻烦。我看到问题的一个示例页面就是这个:link

免责声明:我尚未认真开始对事业进行调查。我转向Stackoverflow因为我很懒,我希望有人会说“这件事发生在我身上,可能就是这个......”。所以,请问,如果这是你以前从未见过的事情,没有人会遇到这个问题,因为我自己没有这样做是不公平的。

好的,有些背景:

  • 第一次查看页面时,通常会(可能总是)出现问题
  • 问题并不总是出现,有时只出现
  • 当页面显示为munged时,如果你刷新它通常重新加载看起来应该
  • 该网站是一个rails应用
  • css通过整齐的Smurf Gem传递,它会自动缩小页面上的CSS和Javascript。
  • 布局问题发生在firefox(linux和winXP)
  • 使用“:cache => true”选项在生产环境中提供CSS,该选项将所有css文件连接成一个文件

无论如何,我希望以前有人发生这种情况,修复起来非常简单。如果没有,我会去调查并返回解决方案(或请求更多帮助)。

提前致谢!

詹姆斯。

[edit]我添加了前两个要点,受到评论和第一个答案[/ edit]

的启发

3 个答案:

答案 0 :(得分:1)

我们在使用HAML和SASS时遇到类似的问题导致CSS完全不可用。它只发生在部署上。我们确定它是Rails样式表合并和SASS生成CSS的组合。 Sass没有完成生成CSS,它是在第一次请求应用程序时完成的,当时Rails尝试将它们合并在一起。结果,一个腐败无用的CSS文件。然后我们偶然发现this article有一个解决方案来防止这个问题。

基于这一切,我最好的猜测是Smurf gem正在尝试在第一次请求时生成你的文件,但是Rails在它完成之前就已经提供了它。生成完成然后每个后续请求都很好。如果这是问题,那么我所知道的唯一解决方案是在第一个请求之前生成文件。当然,这确实假设它以某种方式与部署或应用程序重启有关。

对等

答案 1 :(得分:0)

我遇到了这样的问题。问题出现在第一次加载页面时。只需重新加载就可以了。 在我的情况下的问题是第一次没有在缓存中的图像,所以浏览器在准备导致问题的页面时不知道它的尺寸

答案 2 :(得分:0)

如果图像没有指定高度/宽度,则会在页面上创建一个位置并将其放在那里。如果图像不太合适,浏览器可能不会知道这一点,直到它刷新。然后它已经知道大小并且可以正确地将它放到页面上。