3

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

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

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

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

4

1 回答 1

3

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

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

于 2015-04-05T19:04:39.683 回答