Есть ли способ изменить map.root, чтобы он указывал на что-то отличное от '/'? - PullRequest
2 голосов
/ 23 марта 2009

У меня apache 2.2 с mod_rails, работающим на http://localhost. Я хочу, чтобы мое приложение rails было на http://localhost/railsBlog. Итак, я создал виртуальный хост:


  ServerName localhost
  DocumentRoot /Library/WebServer/Documents
  RailsEnv development
  RailsBaseURI <b>/railsBlog</b>

Теперь, поскольку URL-адрес http://localhost/railsBlog,, сервер рассматривает railsBlog как контроллер, который я передаю, а это не то, что мне нужно. Поэтому, когда я перехожу на http://localhost/railsBlog/home/index., это не доходит до моего «домашнего» контроллера и представления «индекс», поскольку он пытается перейти к « railsBlog » контроллеру (не существует) «домашний» вид (не существует).

Я думаю, что один из способов решить эту проблему - переопределить map.root, чтобы он был / railsBlog , и все должно быть в порядке. Но как?

Еще один способ обойти это - изменить config / rout.rb так, чтобы он имел:

map.connect '<b>railsBlog</b>/:controller/:action/:id'

Однако это будет означать, что мне придется менять этот файл каждый раз, когда я развертываю в другом месте.

Или, есть ли другой способ обойти это?

Ответы [ 2 ]

4 голосов
/ 23 марта 2009

Вы можете поместить такую ​​строку в config / environment.rb (или в один из определенных файлов среды)

config.action_controller.relative_url_root = "/railsBlog"

Вам также следует поместить символическую ссылку в каталог publc в корневой каталог веб-каталога, например:

ln -s /rails/railsBlog/public /webroot/

Это все из пассажирской документации

1 голос
/ 21 мая 2009

Просто чтобы добавить к предыдущему ответу ... вот URL документации:

http://www.modrails.com/documentation/Users%20guide.html#deploying_rails_to_sub_uri

Также, вот некоторая информация, если вы сталкиваетесь с ошибками из-за испорченного изображения, CSS, ссылок на ресурсы ...

http://www.modrails.com/documentation/Users%20guide.html#sub_uri_deployment_uri_fix

По сути, он говорит, что вы всегда должны использовать вспомогательные функции rails (image_tag, javascript_include_tag и stylesheet_link_tag) вместо ручного кодирования URL-адресов. Они автоматически сгенерируют правильный URL-адрес с указанным вами вложенным именем.

Это позволяет вам легко перемещать приложение в другую подпрограмму или из конфигурации подпрограммы без изменения всех ваших ссылок.

Одна приятная вещь в этом заключается в том, что вы можете использовать один оператор виртуального сервера для развертывания нескольких приложений, имеющих несколько строк RailsBaseURI. Это пригодилось для приложения, которое мы пытались создать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...