【问题标题】:Rails - Can I run rake assets:precompile on production server, while the production app is still running?Rails - 我可以在生产应用程序仍在运行时在生产服务器上运行 rake assets:precompile 吗?
【发布时间】:2015-04-05 06:49:47
【问题描述】:

对不起,如果这个问题听起来很基础。但我无法在网络上的任何地方找到答案......

我目前在 Ubuntu 服务器上运行我的 Rails 应用程序。到目前为止,我总是在拉取更改之前关闭生产应用程序,运行 rake assets:clean assets:precompile,并且只有在该过程完成后才再次启动 Rails 应用程序。

我不确定是否有必要关闭应用程序(即,如果我不这样做,我的应用程序将运行不正常)。它会导致大约 5 分钟的停机时间。

如果这是必须的,那么也许我应该尝试进行本地预编译/更高级的部署程序,以减少停机时间? (根据http://guides.rubyonrails.org/asset_pipeline.html#local-precompilation尝试本地编译,但在删除原始public/assets并从repo中提取本地预编译public/assets后,生产服务器一直有机架超时并且不会渲染任何东西。)

【问题讨论】:

    标签: ruby-on-rails deployment asset-pipeline web-deployment pre-compilation


    【解决方案1】:

    是的,您运行rake assets:precompile Rails 会查看您的assets 文件夹并将所有不是Javascript 或CSS 的内容复制到public/assets。然后它通过读取app\assets\javascripts\application.js 创建application.js,并通过读取app\assets\stylesheets\application.css 创建application.css,加载它在其中找到的所有“require”文件。 所以是的..你可以这样做 ..但是如果你运行 rake assets:clean..然后预编译...那么 public/assets 将更新为新的编译资产。

    别忘了重启服务器 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-03
      • 2014-12-09
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 2011-11-17
      • 2019-09-11
      • 1970-01-01
      相关资源
      最近更新 更多