1

在 rails 3.1 中,我能够将符号链接放置到我的公用文件夹中的 html 页面目录,并且它有效。现在在 Rails 3.2 中,当我尝试打开任何这些 html 文件时,它会给我一个 404 not found 页面。现在阻止符号链接的 rails 3.2 发生了什么变化,我该如何绕过它?

澄清一下,我有一个朋友想通过在我的网站上托管他的网站来省钱。因此,当我部署他的站点时,应该可以通过http://mysite.org/hissite/访问。他和我在同一台服务器上有一个帐户,所以我只需创建一个符号链接,指向位于他帐户中的 hissite 目录。我把这个符号链接放在我的公用文件夹中。在升级到 rails 3.2 之前,这就像一个魅力。我可以使用硬目录,但这将在我的帐户上要求他向我发送更新,然后我必须发布这些更新。这是个大麻烦。允许他在我的网站上托管他的内容对我来说很重要,因为它是相关内容,有助于为我的网站带来更多访问者。

更多细节:问题出在我使用乘客的生产站点上。在开发中,我在我的开发机器上使用符号链接目录对其进行了测试,它运行良好。硬链接似乎在生产中有效,但是每当他添加新文件时我都必须更新目录,这很麻烦。

4

1 回答 1

0

好吧,我想出了一个技巧来让它工作,但这不是我想要的。每当我进行部署时,我都会编写一个 capistrano 任务来链接文件。所以我的 capistrano 任务看起来像这样。

namespace :accounts do
    desc "Relink friend's site on each release"
    task :relink_friends_site, :roles => :app do
        run "mkdir -p #{release_path}/public/hissite"
        run "cd #{release_path}/public/hissite && ln /home/hisaccount/hissite/index.html"
        run "cd #{release_path}/public/hissite && ln /home/hisaccount/hissite/page2.html"
        ...
    end
end

如果有人知道解决此问题的更好方法,请告诉我。至少这样我就不必为每个部署重新链接文件。

于 2012-08-11T23:33:20.960 回答