【问题标题】:Rails & CSS: best to have css for each controller or all in application.css?Rails & CSS:最好在 application.css 中为每个控制器或所有控制器提供 css?
【发布时间】:2013-12-26 15:38:06
【问题描述】:

虽然从语义上讲,如果每个控制器的 css 都在其单独的 css 文件中,代码会更清晰,但这并不意味着在用户浏览网站时会创建多个 css 资产文件。

为了最终用户的速度,将所有 css 放入 application.css 会不会更好,因为整个网站的 css 会立即加载?

【问题讨论】:

标签: css ruby-on-rails ruby-on-rails-4


【解决方案1】:

在 Rails 中开发时,默认环境设置为Development。在开发中,Javascript 和 CSS 文件是单独提供的。当您切换到生产环境时,Asset Pipeline 会将您的 CSS 编译为单个 application.css 文件。因此,您的 assets/stylesheets 仅提供一个 CSS 文件(除非它是供应商文件)。

【讨论】:

  • 后续问题:如果多个控制器使用相同的 css 代码,那么放置它的最佳位置是什么,即使在开发中它也可以工作。
  • 就我个人而言,我认为 Rails 处理 CSS 文件的方式是有缺陷的。我不想生成自动文件。我创建自己的结构。例如layouts.cssutilities.cssmixins.csssidebar.css 等...我也使用 SASS,这使得这项任务变得更加容易。
  • 不要害怕创建自己的文件。
  • 如果您使用默认的 application.css 清单,您应该始终获取所有控制器的 CSS 文件。许多人认为这不是组织 CSS 的最佳方式。 (例如,基于接口模式而不是控制器可能会更好。)
【解决方案2】:

使用默认的 CSS 生成器。 Rails 使用 Pipelan 通过默认压缩或压缩 CSS/Javascript:

Pipeline 提供了一个框架来连接、缩小或压缩 JavaScript 和 CSS 资源。它还增加了用其他语言(如 CoffeeScript、Sass 和 ERB)编写这些资产的能力。

http://guides.rubyonrails.org/asset_pipeline.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-05
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多