Как я могу указать путь, по которому должен запускаться Redmine, например example.com:3000/redmine
вместо того example.com:3000
? На панели настроек есть опция с соответствующим названием, но, согласно документации и экспериментальным наблюдениям, она служит другой цели (она используется для записи URL-адреса в электронных письмах, отправляемых пользователям).
Более широкая картина: мне это нужно, чтобы правильно обслуживать Redmine на 80-м порту через Apache mod_proxy (т.е. example.com/redmine
). Проблема в том, что при запуске на /
, домашняя страница не может загрузить необходимые ресурсы (например, файлы JavaScript и CSS). Есть обходные пути?
Я использовал модуль Proxy-HTML:
ProxyPass /redmine http://example.com:3000
ProxyHTMLURLMap http://example.com:3000 /redmine
<Location /redmine>
ProxyPassReverse http://example.com:3000
SetOutputFilter proxy-html
ProxyHTMLURLMap / /redmine/
ProxyHTMLURLMap /redmine/ /redmine
</Location>
Использование выходных фильтров - плохая идея, потому что я не могу работать везде.
Лучшей идеей было бы проинструктировать ваш сервер приложений (ублюдок, тонкий и т.д.) сообщать Rails базовый URL-адрес, по которому развернуто приложение. Таким образом, Rails может напрямую генерировать правильные ссылки. Это можно сделать, добавив --prefix /redmine
к параметрам app-server.
в cluster.xml
файл, используемый mongrel_cluster, то же самое можно сделать, вставив
prefix: /redmine
внутрь. (по крайней мере, я считаю, что этот синтаксис правильный)