有什么方法可以配置Rails,以便它为不同的域使用另一个公共位置?

时间:2011-10-06 12:45:19

标签: ruby-on-rails static dns public

我有以下文件夹结构:

/rails
  /public
    /images

我有2个域名: long_domain.com short.one

我希望在加载long_domain.com时它将/ public文件夹用作public,当加载short.one时,它使用/ public / images

问题是我不希望它加载路由,它应该充当原始公用文件夹。

这可以用Rails完成吗?使用另一个“静态”轻量级服务器会更好吗?

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。

如果您将图片托管在网站外,则必须在图片代码中使用完整网址。相关链接将转到您的CDN或图像所在的网站。这里的优点是你可以明确控制你的应用程序,它可能会起作用。我在配置中为图像托管位置定义了一些常量,以便稍后我可以轻松更改它。

除此之外,您可以使用mod_passenger代理回Rails并使用mod_rewrite规则动态重写图像标记。这里的优点是您不必更改您的应用程序(虽然更改可能不是太糟糕)。问题是mod_rewrite是正则表达式所以可能需要一些游戏来找出正确的规则(并测试所有奇怪的情况)。

第三种选择是使用宝石。如果你真的想要扩展你的图像处理,你应该切换到Dragonfly,它可以在你想要的任何地方存储图像的辅助副本。它有很多选项和功能。听起来你会对它的这方面感兴趣: http://markevans.github.com/dragonfly/file.DataStorage.html

希望这会给你一些想法。