ruby-on-rails - Rails 3.1 - 跨服务器共享预编译资源

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

应用程序 1 位于服务器 A 上。 应用程序 2 位于服务器 B 上。

应用程序 2 具有预编译资源,一切都运行良好。

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

有办法实现这个功能吗?

我尝试设置:

config.action_controller.asset_host = "http://assets.example.com" 

在应用程序 1 中,但这似乎没有帮助。

当我在应用程序 2 上查看图像时,路径显示带有缓存指纹的 url,如 asset/logo-i3q73498g0.png,而在应用程序 1 中,图像未显示,路径只是 logo.png

谢谢!

最佳答案

这个问题的答案可能是在应用程序之间共享 Assets list 文件。该文件包含原始文件名到其中包含指纹的文件名的映射。

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

关于ruby-on-rails - Rails 3.1 - 跨服务器共享预编译资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604559/

相关文章:

ruby-on-rails - 路由错误 : uninitialized constant Sessions

ruby-on-rails - 使用关联数据发布 JSON

ruby-on-rails - rails 3 中的部分形式需要不同的链接,具体取决于新建或编辑

ruby-on-rails-3.1 - Rails 3.1 Assets 管道供应商/ Assets 文件夹组织

ruby-on-rails - 如何从 Ruby on Rails 的控制台调用 Controller / View 辅助方法?

ruby-on-rails - 如何将大的 rspec 文件分成更小的部分

ruby-on-rails-3 - 事件管理员在不同的地方重命名资源

javascript - 如何在我的 create.js.erb 中重置/清除表单?

ruby-on-rails - 在多个域之间共享用户 session

ruby-on-rails - 使用 rbenv 在 Ubuntu 上加载 Rails 4.2.0 错误