我应该在部署之前在服务器上预先编译资产吗?

时间:2012-10-05 21:31:08

标签: ruby-on-rails ruby-on-rails-3 asset-pipeline

我可以选择在开发中或我的生产服务器上本地预编译我的资产。我使用git部署,所以我不想检查所有这些资产(特别是如果他们使用缓存破坏摘要)。

在本地预编译资产是否有任何优势(除了在生产机器上缺少写入权限)?

2 个答案:

答案 0 :(得分:1)

我发现在本地编译资产的速度要快得多,然后您的网站会缩短一段时间。

当然,这取决于您的服务器设置等......

答案 1 :(得分:1)

预编译资产时,您的网站无需关闭。如果您使用capistrano或类似工具,则预先编译服务器中的资产,然后(在此之后并完成更多步骤)重新启动应用程序。同时,该应用程序由旧代码(和资产)提供服务。

另一方面,我不同意“缓存破坏”评论。如果可能的话,Git足够聪明,可以理解两个不同命名文件之间的差异。因此无论名称是否改变,结果都完全相同。在这种情况下,我完全同意使用生成的数据(如编译资产)加载存储库是没有意义的。