有几次,当我从开发阶段转向升级阶段时,我被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请求在页面上实际产生的差异有多大?
答案 0 :(得分:0)
你的CSS验证了吗?我过去遇到过类似于你的问题,这些问题是由我在验证时发现的小错误引起的。
答案 1 :(得分:0)
出于兴趣,如果您更改:cache
选项以使其不包含正斜杠,它是否有效?例如:
<%= stylesheet_link_tag "reset-fonts-grid.css", ..., :cache => "foo" %>
link
元素是什么样的?答案 2 :(得分:0)
如果您想深入了解在连接和非连接情况下如何应用样式的详细信息,可以安装Firefox的FireBug插件。然后可能打开两个浏览器窗口,一个是dev中的页面,一个是生产中的,并使用FireBug来隔离一个给你带来麻烦的DOM元素,并在两种不同情况下比较该元素的计算CSS属性。
最新版本的Safari有一个与FireBug非常相似的内置工具。
Rails是否可能以错误的顺序连接CSS文件?似乎不太可能,但也许Rails中存在一个错误。查看连接文件并检查订单。如果它们出现故障,您可以创建一个主CSS文件,并使用@include
语句包含其他文件。这将确保以正确的顺序阅读它们。