1

Apache と Phusion Passenger を使用して、Refinery ベースのサイトをドメインのサブディレクトリにデプロイしようとしています。どういうわけか、ほとんど機能しますが、完全ではありません。誰かがこれについて何か経験があり、私が欠けているものを教えてくれますか?

これが私がこれまでに試したことです:

最初に、til サイトの DocumentRoot からアプリのパブリック ディレクトリへのシンボリック リンクを作成しました。

ln -s /webapps/myapp/public /www/myapp

そして、Apache の仮想ホスト セクションに以下を追加しました。

<VirtualHost *>
    ...
    RackBaseURI /myapp
    <Directory /www/myapp>
       Options -MultiViews
    <Directory>
</VirtualHost>

ブラウザでサーバーの /myapp サブディレクトリを指定すると、予想どおり、アプリが表示されます。ただし、バックエンドで生成されたさまざまなリンク ( の下に/myapp/refineryあります) およびフロントエンドのメニュー エントリは、サイトのルートを指しています。つまり、[ページ] タブをクリックすると/refinery/pages、正しいパスが に転送されます/myapp/refinery/pages

Refinery が Rails Engine として作成されていることを考えると、-directory にマウントする必要があると考えた/myappので、config/routes.rb を次のように変更しました。

mount Refinery::Core::Engine, :at => Rails.env.production? ? '/myapp' : '/'

ただし、これにより、/myapp/myapp代わりにサイトが移動します。リンクは を指すようになりまし/myapp/resourceたが、リソースが別のレベルに移動したため、まだ立ち往生しています。

Redmine と別のカスタム Rails 3.0 アプリの両方を同じサイトのサブディレクトリで実行していますが、問題はありません。どういうわけか製油所は混乱しているように見えますが、何が欠けているのかわかりません。

Rack docs を見ると、 config.ru を次のように変更してみました。

map '/myapp' do
    require ::File.expand_path('../config/environment',  __FILE__)
    run MyApp::Application
end

しかし、それはシステムをさらに混乱させ、返されるのは次のとおりです。

Not Found: /refinery

ページを取得しようとすると/myapp/refinery

4

0 に答える 0