【问题标题】:Serve assets directly (No asset pipeline) in development?在开发中直接服务资产(无资产管道)?
【发布时间】:2011-12-26 09:47:18
【问题描述】:

Rails 3.1 在开发过程中加载页面非常缓慢。它通过管道处理它们,一次一个,并且花费的时间太长。

是否可以预编译我的资产(我现在没有测试,所以静态文件很好)并且 Rails 不负责为它们提供服务?这会让事情变得更快吗?

更新:找到了解决方案。
Richard Hulse 有这个问题的正确答案。 rake assets:precompile 将预构建资产,以便直接提供它们,而无需资产管道。

但是 Frexuz 的 回答解决了我一直遇到的加载缓慢的问题。加载 Rails-dev-tweaks gem 可以显着加快开发中的页面加载速度。

【问题讨论】:

  • 将文件config/environments/development.rb的资产设置添加到您的问题中,这应该是缓慢的根源。

标签: ruby-on-rails-3 performance asset-pipeline


【解决方案1】:

是的。

您可以运行预编译任务(在 3.1.1 中)并且它会正常工作 - 预编译任务将为您提供没有指纹的资产以及有指纹的资产,这是您在开发模式下所需要的。 (开发模式下不添加指纹)。

请注意,您不要将这些提交到源代码管理中。

更令人担忧的是速度缓慢。我的清单中有 4 个样式表和 15 个 javascript 文件,第一次请求时它只是有点慢。

当资产被访问时,您在日志中看到了什么?您应该能够看到它们在第一次命中时被编译,并且每个后续请求都应该是未修改的 304。

另外,您的 dev 配置设置是否与资产管道指南中的配置相匹配?如果您在开发模式下使用大量文件进行压缩,这可能会导致速度变慢。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题!由于资产的原因,加载页面可能需要额外 2-4 秒。

    看看这里(宝石):Rails 3.1 is very slow in development-mode because of assets, what to do?

    这使得服务资产几乎是即时的(服务器控制台显示每个资产 1 毫秒),正常使用资产管道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2015-08-23
      • 2021-09-11
      相关资源
      最近更新 更多