如何使用rails在开发模式下智能地缓存/过期资产文件

时间:2013-09-03 23:21:40

标签: javascript ruby-on-rails caching asset-pipeline scalability

在rails之上构建一个繁重的javascript应用程序(SPA)之后,随着我们的应用程序的增长,我们在开发模式下的可伸缩性方面遇到了一些麻烦。目前有超过650个javascript文件,每次我们需要重新加载页面大约需要30秒才能完成并下载所有这些文件。

enter image description here

我想知道rails是否有任何配置选项来在开发模式下缓存这些资产(而不是压缩),当它们中的任何一个被更改时,它会使资产缓存失效。这是development.rb文件配置:

MyApp::Application.configure do
  config.cache_classes = false
  config.action_controller.perform_caching = false
  config.consider_all_requests_local = true
  config.assets.enabled = true
  config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
  config.assets.compress = false
  config.assets.debug = true
end

可能存在该选项,请告诉我。

感谢。

1 个答案:

答案 0 :(得分:1)

已经发布了评论,但他喜欢这个答案,所以这里又来了。

最简单的选择是将config.assets.debug设置为false,这不会压缩文件,只是连接。

作为旁注,Discourse在Rails中有一个基于开源JavaScript的大型应用程序(当前大约600个.js文件),https://github.com/discourse/discourse,也许你可以看看它们是如何处理它的。这是一篇博客文章,详细介绍了Discourse中的一些可能的工作,http://samsaffron.com/archive/2013/05/03/eliminating-my-trivial-inconveniences,请参阅“我花时间快速开发环境”。