【问题标题】:Rails 3.1+ , Asset Pipeline and Large projectRails 3.1+,资产管道和大型项目
【发布时间】:2012-02-24 08:23:11
【问题描述】:

我想要来自社区的意见和观点。

我正在开发一个包含多个模块的大型应用程序,它是一个基于内容的网站,还需要许多独特的 UI 功能。

我喜欢使用 SASS 和 coffee-script,但我想要您的意见的原因是,我们需要编译资产,并且在我的 Core-i3 机器上需要 15-20 分钟。因为我们使用的是bootstrap,还有compass-rails

我的问题是,在我们必须处理巨大的 CSS 并且我们在 UI/CSS 中不断更新的地方使用资产管道是否正确。因为对于每个 css 更改,我们都要进行实时处理,我们必须编译资产并且需要很长时间。

对于如此庞大的项目,我们使用普通的 Rails 3 样式和脚本功能来避免资产管道的复杂性是不可行的吗?或者我们有什么方法可以降低它的复杂性并减少编译时间。

请详细提供您的意见,以便在决定资产管道之前将此问题/答案服务器作为其他人的指南。

【问题讨论】:

    标签: twitter-bootstrap ruby-on-rails-3.1 sass asset-pipeline


    【解决方案1】:

    我看到你有三个选择:

    1。完全禁用资产管道

    这种方法可能是配置方面最容易采用的方法:您可以禁用资产管道并退回以继续直接使用 CSS + Javascript 进行开发。就个人而言,我认为 Coffeescript 和 SCSS 是巨大的生产力收益,它们让我的生活更轻松,所以我不会走这条路。但这是一种可能。

    要禁用资产管道,您需要设置以下配置选项:

    #application.rb
    config.assets.enabled = false
    

    并从您的 gemfile 中删除资产组中的 gem:

    group :assets do
      gem 'sass-rails',   '~> 3.2.3'
      gem 'coffee-rails', '~> 3.2.1'
      gem 'uglifier', '>= 1.0.3'
    end
    

    2。在生产中启用资产管道

    通常不推荐,但也是一种选择:根据您的服务器负载和用户数量,可以在启用资产管道的情况下在生产环境中运行应用程序。这种方法的缺点当然是每次请求进入时服务器都必须重新编译资产。

    3。获得更快的机器(如果可能,使用 SSD)

    与开发人员的时间成本相比,计算机确实非常便宜,所以如果可能的话,我建议购买一台更好的带有固态磁盘的机器。使用 SSD 不仅可以节省时间,而且运行测试套件或编译资产等 IO 密集型操作也会大大减少。

    【讨论】:

    • 我想在这里再补充一点我要完成的事情。我在具有巨大处理器和 RAM 的本地机器上编译资产,然后将它们推送到服务器。
    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2012-02-04
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多