最近我将一个应用程序从 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 中被删除了。
这个问题还有其他解决方案吗?