Назад | Перейти на главную страницу

Приложение My Ruby on Rails работает, только если адрес содержит порт

У меня есть приложение Ruby on Rails, которое нормально работает на моем ноутбуке ( http: // локальный: 3000 / )

Если я напишу в своем браузере http://example.com:12007/ или http://www.example.com:12007/ все страницы работают как положено. Но если я напишу http://example.com/ или http://www.example.com/ отображается первая страница, но без каких-либо css или изображений (точно так же, как она их не найдет). Я могу видеть весь текст (даже текст из моей базы данных MySQL), но без формата. И если я нажимаю на любую ссылку, я получаю такую ​​страницу с ошибкой:

Not Found

The requested URL /some_controller was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Что мне делать, чтобы мой сайт работал без указания порта в адресной строке?


Содержание моего /public_html/.htaccess файл

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/?$ "http\:\/\/127\.0\.0\.1\:12007%{REQUEST_URI}" [P,QSA,L]

который, я думаю, был создан CPanel Rewrites.

Можете ли вы получить доступ к ресурсу / some_controller напрямую, если укажете на него свой браузер? То же самое верно и для ваших файлов CSS. Можете ли вы опубликовать фрагмент источника HTML, который включает HREF или SRC для ваших ссылок / CSS?

Редактировать...

Теперь, когда я смотрю на это правило перезаписи, конечно, оно не работает.

^/?$

Это будет соответствовать только URL-адресу /. Измените его на:

RewriteRule ^(.*)$ http://127.0.0.1:12007/$1 [P,QSA,L]

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