我的 Rails 应用程序的第一个请求在所有环境中都非常慢。
这不应该是由于缓存/加载 gem 的方式不同。两个小时前还好,没有大的变化。
在我发现我的应用变慢之前的几个小时我做了什么:
我在 production.rb 中搞砸了(不是在 development.rb 中):我在玩弄 config.serve_static_assets =是的
我做了很多任务来诊断为什么 Assets 管道没有在生产中加载我的样式表和图像(比如 rake assets:precompile RAILS_ENV=production 和rake:clean assets:precompile).
之后我显然试图撤消我所做的所有更改,但由于某种原因,我的应用程序现在开发速度很慢,而之前它非常好。
我该如何解决这个问题?
提前致谢:-)
更新 1
当我向 localhost:3000 发送请求时,仅在 12-13 秒后我收到: 开始 GET "/"for::1 at 随机时间
渲染行为正常。第一个之后的所有请求都可以。
更新 2
在我的应用程序的旧版本中,我执行了以下操作:
- 用新的文件夹替换旧的“app”文件夹
- 用新的文件替换旧的“db”文件
- 用新的替换旧的“配置”文件
一切都在顺利进行,但仍然不知道问题出在哪里。请注意,昨天的应用程序版本仍然运行缓慢,因此这不是非 Rails 相关的问题。
最佳答案
回答
在本地主机上的生产中,我的 Assets 不知何故没有提供(虽然它们在预编译后确实出现在公共(public)目录中)。
在生产中.rb: config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 改为: config.serve_static_files = true 甚至 config.serve_static_assets = true。
这显然也减慢了开发环境中的第一个请求
关于ruby-on-rails - 对 Rails 应用程序的第一个请求非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37567194/