2009-10-05 2 views
0

Edit:отображение ресурсов работает локально, а не на веб-сервере

Ну, может быть, это может дать ключ. При создании приложения Rails в cPanel на моем веб-узле, чтобы получить доступ к приложению, вам нужно создать правило перезаписи. Что я и сделал, но не знал, что он сделал. Я разыскал его вниз к нему создавая следующие 2 файла:

home/mydomain/public_html/.htaccess:

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

и

home/mydomain/.cpanel/ruby-on-rails-rewrites.db: 

    appname: helloworld 
    domain: mydomain.com 
    port: 12030 
    rewritebasepath: /home/mydomain/public_html 
    url: 

Это кажется, что корень URL отправляется в Rails, но и любой другой URL не и я получаю Apache 404 (а не Rails 404). Что-то не так в файле .htaccess? Является ли условие перезаписи только для корня домена? Если да, как я могу сделать это для любого URL-адреса?

Оригинальное сообщение:

Я пытаюсь развернуть сайт рельсы, который работает нормально локально, а не на веб-сервере. Приложение rails запускается нормально, и я могу получить доступ к домашней странице. Но любые другие результаты ссылка в 404.

Моя домашняя страница находится в пределах от routes.rb так:

map.root :controller => "home" 

Я использую RESTful маршруты и она отлично работает локально. В routes.rb все у меня есть куча

map.resources :posts 
map.resources :images 

...

Если изменить map.root к другому контроллеру (т.е. map.root :controller => "posts", то, что одна страница будет отображаться в порядке, а также и все остальные ссылки будут return 404s, в том числе тот, который ранее работал, когда он был указан в map.root.

Это мое первое развертывание рельсов, поэтому возможно, что я что-то не так. Моя техническая поддержка веб-хостинга сказала мне, что это проблема кодирования, и что они не могут мне помочь.

Мой сайт Структура каталогов в Интернете, как так:

/home/mydomain/etc/rails_apps/mysitedir/ <- rails folders (app, config, db, ...) 
/home/mydomain/public_html/ <- nothing here 

Кроме того, файлы, которые находятся в моих рельсам общих папок, они должны оставаться в этой папке, или они должны быть помещены в папку public_html на паутина? Потому что сейчас их тоже нет. Если я поместил их в папку public_html, они найдены на главной странице (javascript и css и изображения).

В моем журнале ошибок в Cpanel, он показывает ошибки, такие как:

[Mon Oct 05 08:19:41 2009] [error] [client XX.XX.XX.XX] 
File does not exist: /home/mydomain/public_html/market, 
referer: http://www.mydomain.com/ 

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

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

Что я делаю неправильно, что получаю все эти 404? У меня нет доступа к оболочке, у меня есть cPanel. Это с Ruby 1.8.5 и Rails 2.3.4, (общим) веб-сервером является Linux + Apache 2.2.11 (Unix).

ответ

0

Проблема с моим веб-хостом. Все еще не разрешены ими.

0

Вам нужно получить свой веб-корень, чтобы указать на/home/mydomain/etc/rails_apps/mysitedir/public/Возможно, это можно настроить в cpanel?

Если вы можете получить доступ к оболочке вы могли бы сделать что-то вроде (синтаксис может незначительно отличаться):

ln -s /home/mydomain/etc/rails_apps/mysitedir/public/ /home/mydomain/public_html 

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

+0

Будет ли это позаботиться о проблеме с маршрутизацией, или это будет просто для вещей, находящихся в общей папке rails (javascript, stylesheets, images)? – JRL

+0

Будет ли эта команда создавать символическую ссылку создать файл где-нибудь, который я мог бы просто создать на своем ПК и загрузить на сайт? – JRL

+0

Я попытался запустить эту команду для создания символической ссылки (используется cronjob, без доступа к оболочке), и она вернулась: ln: создание символической ссылки '/ home/mydomain/public_html/public 'на'/home/mydomain/etc/rails_apps/mysite/public/': Файл существует Я полагаю, что это ошибка. Так что это значит? А также, в вашем синтаксисе, почему первый путь заканчивается конечной косой чертой, а второй - нет? Это ошибка? – JRL

0

Я столкнулся с той же проблемой и нашел исправление. В файле .htaccess, удалить, что первый «$», так что вы есть:

RewriteRule ^/? "http\:\/\/127\.0\.0\.1\:12030%{REQUEST_URI}" [P,QSA,L] 

Это первый бит является Regex, так что $ соответствует концу URL.

Как побочная проблема, это уже проблема, которую мне пришлось решить сегодня, потому что cPanel сосет.

Смежные вопросы