【发布时间】:2013-09-24 19:38:10
【问题描述】:
最近我将一个应用程序从 Rails 3 升级到 Rails 4。在部署脚本中,我在本地预编译资产,然后将它们同步到服务器。在 Rails 4 中,资产管道现在生成 manifest- < random > .json 而不是 manifest.yml。由于清单文件的名称不同,这会将多个 manifest.json 文件添加到共享资产目录中。然后,应用程序会选择错误的清单文件,并提供旧资产。
我在一些 github 拉取请求线程中阅读了与此相关的各种问题:
- https://github.com/capistrano/capistrano/pull/412
- https://github.com/capistrano/capistrano/issues/210
- https://github.com/capistrano/capistrano/pull/281
我的选择似乎是:
-
不要共享资产目录。
这会破坏要求旧资源的老客户。
-
切换到在服务器上编译资产。
这会增加服务器的复杂性。
-
将清单文件移到共享资产目录之外。
我后来得知这个选项在 Rails 4 中被删除了。
这个问题还有其他解决方案吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 capistrano asset-pipeline