1

现在有几次当我从开发转向登台时,我被 JavaScript 和样式表在汇总到单个文件时如何改变它们的行为所困扰。

例如,为了便于维护,我试图保持样式表系列的模块化和小型化,如下所示:

  <%= stylesheet_link_tag "reset-fonts-grid.css", "typography.css", "layout.css", "cms.css", "cms.about.css", "cms.legal.css", "comments.css", "user_generated_content.css", "overlay.css", "login_page.css", "flag_for_admin.css", 'patch.css', 'nag_guide.css', :cache => "cache/all" %>

当您更关心调试而不是计算 http 请求时,在开发中工作正常。

但是,一旦我转移到生产环境或在 config/environments/development.rb 中将缓存设置为开启,如下所示,布局就会中断:

config.action_controller.perform_caching = false

这里发生了什么,为什么连接文件的行为与这样的一系列较小请求不同,我该如何解决这个问题?

顺便说一句,与文件大小相比,页面上实际的 http 请求数量有多大差异?

4

3 回答 3

0

出于兴趣,如果您更改:cache选项以使其不包含正斜杠,它是否有效?例如:

<%= stylesheet_link_tag "reset-fonts-grid.css", ..., :cache => "foo" %>
  • linkRails 为您的组合样式表生成的 HTML 元素是什么样的?
于 2009-07-07T13:38:29.490 回答
0

你的 CSS 验证了吗?我过去遇到过与您类似的问题,这是由我在验证中发现的小错误引起的。

试试http://jigsaw.w3.org/css-validator/

于 2009-07-07T13:27:29.753 回答
0

如果您想深入了解如何在串联和非串联情况下应用样式的详细信息,您可以安装适用于 Firefox 的 FireBug 插件。然后可能会打开两个浏览器窗口,一个是开发中的页面,一个是生产中的页面,并使用 FireBug 隔离一个给您带来麻烦的 DOM 元素,并在两种不同情况下比较该元素的计算 CSS 属性。

最新版本的 Safari 有一个与 FireBug 非常相似的内置工具。

Rails 是否有可能以错误的顺序连接 CSS 文件?似乎不太可能,但 Rails 中可能存在错误。查看连接的文件并检查顺序。如果它们出现故障,您可以创建一个主 CSS 文件并将其他的包含在@include语句中。这将确保以正确的顺序阅读它们。

于 2009-07-07T18:36:50.937 回答