0

我有一个 Rails 应用程序,我现在计划将许多实例部署到不同的域。最初我只打算让它在一个域上。

我意识到对于每个域,我必须替换各个地方的所有硬编码值。这些包括:

  • 资产主机路径(资产位于同一域中)
  • 每当-gem 的 :application 设置(因为两个域可以共享同一个服务器,这是为了避免 crobtab 更新冲突)
  • 一些使用 curl 到自己的地址来触发事件的任务
  • 在计算没有请求对象的图像完整 url 时,carrierwave 需要硬编码值。

问题

有没有设置这个的策略,所以:

  • 该设置不应提交到源代码管理(如database.yml.example
  • Rails 外部的代码可以访问它(只要-gem 不加载 Rails 环境)
  • 访问域的方式可以是一致的
4

1 回答 1

1

您可以采取的一种方法是拥有一个包含每个部署属性的 YAML 文件。您甚至可以签入开发版本并使用正确的版本覆盖您的部署脚本。

通常我会将该配置文件放在 shared/config 中(假设采用 capistrano 样式布局),然后在部署期间将其符号链接到当前版本中。

于 2012-06-06T07:16:21.927 回答