Rails не рендерит активы через SSL (ошибка 404 Not Found) - PullRequest
0 голосов
/ 03 апреля 2012

Я новичок в Rails и борюсь с проблемой, которая препятствует обнаружению моих активов, если я пытаюсь получить доступ к своему тестовому приложению через соединение SSL.

В качестве примера того, на что я ссылаюсь, если вы попытаетесь получить доступ к

http://domain.com/testapp, то страница рельсов по умолчанию загружается нормально, и у меня нет проблем вообще.

Вы также можете получить доступ к странице, которую я создал, используя этот маршрут

http://domain.com/testapp/static_pages/home

Однако тот же адрес, если к нему обращаются по HTTPS, возвращает 404 ошибки для всех моих активов.Я также не могу получить доступ к каким-либо маршрутам (все они возвращают 404).

https://domain.com/testapp

https://domain.com/testapp/static_pages/home

В настоящее время я использую сервер Apache с установленным Passenger,и вот как выглядит конфигурация моего виртуального хоста:

<Directory /var/www/testapp/public>
    PassengerEnabled on
    PassengerAppRoot /var/www/testapp
    RailsBaseURI /testapp
</Directory>

Есть идеи, почему это может происходить?

Спасибо,

Rog

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Вы случайно используете виртуальные хосты на основе имен Apache?

Если это так, перейдите по этой ссылке, чтобы узнать о проблемах SSL с виртуальными хостами:

http://wiki.apache.org/httpd/NameBasedSSLVHosts

0 голосов
/ 03 апреля 2012

Спасибо всем, я наконец выяснил, что происходит, поэтому в интересах других, имеющих такую ​​же проблему, конфигурация виртуального хоста применялась только к порту по умолчанию (80), поэтому мне пришлось также указать порт 443.

<VirtualHost *:80 *:443>
<Directory /var/www/testapp/public>
    PassengerEnabled on
    PassengerAppRoot /var/www/testapp
    RailsBaseURI /testapp
</Directory>
</VirtualHost>

Для людей, использующих DV-сервер Media Temple, эти конфигурации должны быть указаны в двух отдельных файлах (убедитесь, что вы удалили теги VirtualHost).

vhost.conf
vhost_ssl.conf

И не забудьте перезапустить apache.

/usr/sbin/apachectl -K graceful
...