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).
Будет ли это позаботиться о проблеме с маршрутизацией, или это будет просто для вещей, находящихся в общей папке rails (javascript, stylesheets, images)? – JRL
Будет ли эта команда создавать символическую ссылку создать файл где-нибудь, который я мог бы просто создать на своем ПК и загрузить на сайт? – JRL
Я попытался запустить эту команду для создания символической ссылки (используется cronjob, без доступа к оболочке), и она вернулась: ln: создание символической ссылки '/ home/mydomain/public_html/public 'на'/home/mydomain/etc/rails_apps/mysite/public/': Файл существует Я полагаю, что это ошибка. Так что это значит? А также, в вашем синтаксисе, почему первый путь заканчивается конечной косой чертой, а второй - нет? Это ошибка? – JRL