3

对不起,如果这个问题听起来很基本。但我一直无法在网络上的任何地方找到答案...Rails - 我可以运行rake资产:生产服务器上的预编译,而生产应用程序仍在运行?

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

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

如果这是必须的,那么也许我应该尝试执行本地预编译/更高级的部署过程,以减少停机时间? (根据http://guides.rubyonrails.org/asset_pipeline.html#local-precompilation尝试本地编译,但随后删除原始public/assets和本地拉从回购预编译public/assets后,生产服务器为具有机架超时所有的时间并不会呈现任何内容。)

回答

3

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

不要忘记重新启动服务器 :)

相关问题