部署 关于布署时的一些疑惑

luffycn · 2015年01月10日 · 最后由 luffycn 回复于 2015年01月11日 · 1834 次阅读

用的 unicorn + nginx,遇到了一些疑问,求解

1, 在文件 config/secrets.yml 中需要有一个 secret key,请教下 这个是干嘛用的

2, config/environment/production.rb 中需要加入 config.assets.compile = true config.assets.precompile = ['.js', '.css', '*.css.erb'] 并且运行 RAILS_ENV=production bundle exec rake assets:precompile

为何 production 状态需要这些设置,而 develop 状态不需要了?

3, 在 unicorn 启动时,如果以 develop 状态启动,会明显感觉很慢,而用 production 启动,则明显快了很多,这是什么导致的了

Rei 已经给了 12 的答案,至于 3,你对比一下 development.rb 和 production.rb,那些差异项就是速度差异的来源,简单来说,production 模式下设置默认是要预先打包静态文件、缓存类与类方法等,dev 模式下每次发起请求 rails 都会重新读取一遍代码、检查静态文件是否有变化否则重新编译,时间主要差在这里了

# Disable Rails's static asset server (Apache or nginx will already do this). config.serve_static_assets = true

这个属性在 production 下要改为 false, 否则 /assets/image.png 会无法加载 请问这是什么原因了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号