Как смонтировать сайт на НПЗ в подкаталог
Я пытаюсь развернуть сайт на базе Refinery в подкаталоге домена, используя Apache и Phusion Passenger. Как-то это почти работает, но не совсем. Кто-нибудь имеет какой-либо опыт с этим и может указать мне, что я скучаю?
Вот что я пробовал до сих пор:
Сначала я только что сделал символическую ссылку с 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
,
Думая, что НПЗ сделан как рельсовый двигатель, я решил, что мне нужно смонтировать его на /myapp
-directory, поэтому я изменил config / rout.rb следующим образом:
mount Refinery::Core::Engine, :at => Rails.env.production? ? '/myapp' : '/'
Тем не менее, это теперь перемещает сайт в /myapp/myapp
вместо. Ссылки теперь имеют смысл указывать на /myapp/resource
, но так как ресурсы переместились на другой уровень вниз, я все еще застрял.
У меня уже есть и Redmine, и другое пользовательское приложение rails 3.0, работающее в подкаталогах того же сайта, без проблем. Каким-то образом нефтеперерабатывающий завод кажется растерянным, и я не вижу, чего мне не хватает.
Глядя на документы Rack, я даже пытался изменить свой config.ru следующим образом:
map '/myapp' do
require ::File.expand_path('../config/environment', __FILE__)
run MyApp::Application
end
Но это еще больше запутывает систему, и все, что я получаю, это:
Not Found: /refinery
Когда я пытаюсь получить /myapp/refinery
стр.