【问题标题】:Why does my CSS go screwy "sometimes"为什么我的 CSS “有时”会出错
【发布时间】:2010-09-15 06:32:12
【问题描述】:

我的一个网站的行为很奇怪。布局有时很好,有时很古怪。我看到问题的一个示例页面是这个:link

免责声明:我尚未开始认真调查原因。我转向 Stackoverflow 是因为我很懒,我希望有人会说“这发生在我身上一次,可能是这个......”。所以,如果这是您以前从未见过的事情,请没有人会陷入解决这个问题的过程中,因为这不公平,因为我自己没有这样做。

好的,一些背景:

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

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

提前致谢!

詹姆斯。

[edit]受 cmets 和第一个答案的启发,我添加了前两个要点[/edit]

【问题讨论】:

  • 当我在编辑过程中上传 CSS 文件时,我网站上的 CSS 有时会“搞砸”,是这样吗?
  • 什么是“螺丝钉”?我没有发现页面有任何问题。
  • 这并不总是发生,只是有时。我将编辑问题以使其更清楚(但 Shree 可能会在下面给出他/她的答案)...
  • @kyle:文件已经有一段时间了,即我没有编辑文件,rails中的缓存选项应该看到一直使用同一个文件...

标签: ruby-on-rails css


【解决方案1】:

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

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

同行

【讨论】:

  • 我认为这可能是问题,但是在检查了 smurf 生成文件上的“最后修改日期”之后,它最后一次生成是在大约 9 天前(我昨天看到了这个问题)。您提到的问题听起来与我们在 capistrano 脚本中最终创建的一些动态生成的 javascript 中遇到的问题非常相似。
【解决方案2】:

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

【讨论】:

  • 好的,这可能是什么。我认为该问题仅在首次访问该页面时出现,并且该问题通常会随着页面刷新而消失。我需要确定它是否总是在第一次刷新时消失。
【解决方案3】:

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

【讨论】:

  • 对,我网站上的图像往往没有指定宽度/高度。这可能是问题的原因。我现在将调查...
猜你喜欢
  • 1970-01-01
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 2021-03-04
  • 2010-10-18
相关资源
最近更新 更多