由于我转移到active_admin,我的本地服务器需要花费1.5分钟来加载每个页面。我肯定做错了什么。
Development.rb
config.assets.compress = true; config.assets.debug = true; config.assets.compile = false; config.assets.digest = false
Production.rb
config.assets.compress = true; config.assets.compile = true; config.assets.digest = true; config.assets.precompile + = ['active_admin.js','active_admin.css']
请注意编译在生产中是正确的,因为活动的管理员不能正常工作。
资产文件夹
- Javascript角
----- active_admin.js
----- application.js从// = require_tree ./myfolder /
加载其文件----- MyFolder文件
---------- 1.js
---------- 2.js
----------....
- 样式表
----- active_admin.css.scss
----- application.css.scss从* = require_tree ./myfolder /
加载其文件----- MyFolder文件
---------- 1.css.scss
---------- 2.css.scss
----------....
日志
似乎是因为每个资产文件的加载时间。我只列出第一个和最后一个。两者之间的时差是1.5分钟。
2011-10-24开始获取“/assets/jquery.js?body=1”为127.0.0.1 18:19:41 +0530服务资产/jquery.js - 200 OK (4毫秒)
在2011-10-24 18:21:04 开始获取“/assets/myfolder/vertical_menu.css?body=1”127.0.0.1 +0530服务资产/ myfolder / vertical_menu。 css - 200 OK(2ms)
我做错了什么?
答案 0 :(得分:2)
development.rb的正确设置为:
config.assets.debug = true; config.assets.compile = true;
你应该删除压缩线,因为这是一个非常昂贵的过程时间,可能是它很慢的原因。
我建议查看asset pipeline Rails guide,因为它具有已升级的应用配置文件的正确设置,以及有关部署的一些提示。
如果您不需要对文件进行任何调试,您也可以删除调试;这只会提供一个文件而不是很多文件。
答案 1 :(得分:1)
看看https://github.com/wavii/rails-dev-tweaks。
Rails在开发模式下运行每个Sprockets资产请求的所有to_prepare挂钩。这包括自动(重新)加载代码以及各种宝石偷偷摸摸的工作。 (Active Admin是其中一个宝石)
rails-dev-tweaks禁用to_prepare&重新加载任何资产请求(以及其他一些资产请求 - 阅读其自述文件的第一部分)。对于任何体面的项目来说,都要大量加快您的开发环境。它还可以配置为您喜欢的任何其他请求执行此操作
答案 2 :(得分:0)
在你的production.rb中你可以尝试添加
config.assets.compile = false
然后运行
bundle exec rake assets:precompile
这应该在您的公共/资产目录中创建application-somemd5.js和application-someothermd5.css,并且在生产模式下,这些预编译资产将被提供,而不是在每次页面加载时重新编译资产管道。
编辑:
实际上,我认为您可能需要使用这样的rake命令:
bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile
RAILS_GROUPS部分取决于您如何设置Gemfile。如果你有一个类似的部分,你需要它:
group :assets do
gem 'jquery-rails'
gem 'sass-rails'
.... etc
end