Rails 3.1 - 跨服务器共享预编译资产

时间:2011-09-29 23:43:07

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

App 1在服务器A上。 App 2在服务器B上。

App 2具有预编译资产,一切运行良好。

现在,App 1希望使用与驻留在服务器B上的App 2相同的CSS文件。

有没有办法让这项工作?

我尝试过设置:

config.action_controller.asset_host = "http://assets.example.com" 
在应用程序1中

但似乎没有帮助。

当我在App 2上查看图像时,路径会显示带有缓存指纹的网址,例如assets / logo-i3q73498g0.png,其中 - 在应用1中,图像未显示,路径只是logo.png < / p>

谢谢!

1 个答案:

答案 0 :(得分:3)

答案可能是在应用之间共享资产清单文件。此文件包含原始文件名到其中带有指纹的文件名的映射。

默认情况下,这是在public / assets / manifest.yml。我建议您在部署App 2时添加一个任务以从App 1获取资产清单,并假设App 2没有任何已编译的资产(因为您已更改主机),只需将其用于应用程序即可。您必须设置配置以使App 2认为它已编译资产。