6

自从“升级”到 Rails 3.1 我的应用程序在开发模式下真的很

(每个请求> 30)

我有很多图像,似乎大部分时间延迟是资产管道处理每个图像的每个 GET 请求。

在暂存或生产模式下没有这个问题,因为资产被缓存等。

有没有我没有被告知的事情,或者我们现在应该如何工作?

4

4 回答 4

4

如果您有 gem 或应用程序的一部分在每个请求开始时加载代码,或者仅引用应用程序的一部分,从而导致加载大部分内容,则请求可能会很慢。对于其中的大多数,自动加载器是请求延迟的主要原因。

rails 自动重新加载器会在每个请求开始时删除所有可自动加载的类/模块/等,并且可能会在每个请求开始时导致明显的延迟,因为 Rails 会重新加载它需要的所有源文件。

您可能想尝试使用https://github.com/wavii/rails-dev-tweaks,它可以让您精细控制哪些请求会导致自动重新加载器启动。这确实不是根的修复原因(某些东西在每个请求开始时都在做额外的工作,它可能不需要做) - 但它肯定会缓解大多数此类问题。

于 2011-07-12T04:21:04.483 回答
0

同时:

cp -R 应用程序/资产/图像公共/资产

真的有帮助

记得添加public/assets/*到 .gitignore

于 2011-06-22T10:33:19.490 回答
0

如果您的应用程序运行缓慢,那是因为您的应用程序或您使用的其中一种宝石。我有类似的问题,看起来 Mongoid 就是这种情况,您可以在这里阅读更多内容:

http://martinciu.com/2011/06/rails-3-1-and-slow-asset-pipeline.html

于 2011-06-26T08:07:57.617 回答
-1

您可以使用 rake 任务:

rake 资产:预编译 RAILS_ENV=开发 RAILS_ASSETS_NONDIGEST=true

如上所述,不要忘记将 public/assets/* 包含到 .gitignore

于 2011-07-04T12:44:31.190 回答