OK так что у меня есть приложение rails, назовем его «railsapp», в домене Dreamhost VPS (на котором у меня есть другие домены, некоторые «статические» и один, который служит скрипт perl/CGI).Rails routing/assets with proxied location
По очевидным причинам Пассажир не может быть запущен на порту 80, и в настоящее время служит это приложение на порту 8001. У меня есть прокси-сервер (сконфигурированного в Apache) Настройка маршрутизации запросов для http://DOMAIN/books
в DOMAIN:8001/
(который, кстати, работ как DOMAIN/railsapp
).
Вопросы:
1) не обслуживаемые Нет активов - запрос для таблиц стилей, несмотря на 404-х на то, что таблицы стилей делают на самом деле существуют в [railsapp]/public/assets
. Я пробовал все возможные комбинации precompiling, не precompiling и т. Д., И ничего не работает.
2) Ссылки не работают правильно. Доступ к явным образом через порт 8001, ссылки работают правильно, например, DOMAIN:8001/about
показывает страницу «about», а DOMAIN:8001/[railsapp]/[:id]
приводит меня к соответствующему элементу. Аналогично, доступ явно (то есть, вручную вводя адрес в адресной строке), DOMAIN/books/[railsapp]/[:id]
и DOMAIN/books/about
работают отлично. Но ссылки на DOMAIN/books
(на элементы, идентифицированные идентификатором) указывают на DOMAIN/[railsapp]/[:id]
, что дает мне 404; ссылка на 'about', аналогично указывающая на DOMAIN/about
, также не работает.
Теперь! Если бы я бросил осторожность на ветер и переключил свой VPS на использование nginx вместо Apache, угадайте, что? Путь в основном работает! Элементы, идентифицированные идентификатором, связаны как DOMAIN/books/[railsapp]/[:id]
, а «about» связаны как DOMAIN/books/about
, и это здорово. Единственным вопросом в приложении rails является то, что ссылки обратно в корень необъяснимо (?) Отображаются как ссылки на 127.0.0.1:8001
. Это раздражает, но кажется, что это было бы тривиально исправить. Единственная проблема с этим - вы можете помнить об этом с самого начала этого сообщения. В VPS также размещен сайт, на котором используется perl/CGI, и это сломанный как ад, учитывая, что nginx на самом деле не предназначен для обработки perl/CGI. Таким образом, я придерживаюсь Apache, так что CGI остается неповрежденным.
Я проделал поиск этой проблемы, много раз, разными способами.. Я, вероятно, видел какой бы вопрос с stackoverflow или сообщение в блоге, о котором вы думаете, чтобы связать меня. Если у вас есть идеи, как исправить проблемы с путями и активами, учитывая приведенную выше информацию, дайте мне знать.
Это не очень похож на 'perl' вопрос. Я также не уверен, что это действительно на тему, учитывая, что речь идет не о кодировании. – Sobrique
Это не о perl - этот тег был случайным, и я удалил его. Благодарю. –
В чем причина явно указывать порт? Поскольку DOMAIN/что-то ожидало бы получить доступ к порту 80. Или, где возможно, использовать относительные ссылки? – syck