Проблема Heroku: страница, которую вы искали, не существует
Я следовал за книгой до тех пор, пока не закончилась глава 5, и она работает нормально на моей рабочей станции Linux
когда я нажимаю на Хероку, все данные толкаются правильно, но когда я пытаюсь открыть Heroku (http://vivid-sky-685.heroku.com)
Я получаю сообщение 404.
Страница, которую вы искали, не существует. Возможно, вы ошиблись в адресе, или страница, возможно, переместилась.
Ниже мой Gemfile
для приложения
source 'http://rubygems.org'
gem 'rails', '3.0.5'
gem 'sqlite3'
group :development do
gem 'rspec-rails', '2.5.0'
end
group :test do
gem 'rspec', '2.5.0'
gem 'webrat', '0.7.1'
gem 'spork', '0.9.0.rc4'
end
gem 'rake','~> 0.8.7'
Любые идеи, что может быть неправильным?
@odin вот мои журналы heroku, спасибо
2011-09-11T10:41:57+00:00 heroku[router]: GET vivid-sky-685.heroku.com/y dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=728
2011-09-11T10:41:57+00:00 app[web.1]:
2011-09-11T10:41:57+00:00 app[web.1]:
2011-09-11T10:41:57+00:00 app[web.1]: Started GET "/y" for 93.186.31.80 at 2011-09-11 03:41:57 -0700
2011-09-11T10:41:57+00:00 app[web.1]:
2011-09-11T10:41:57+00:00 app[web.1]: ActionController::RoutingError (No route matches "/y"):
2011-09-11T10:41:57+00:00 app[web.1]:
2011-09-11T10:41:57+00:00 app[web.1]:
2011-09-11T10:41:57+00:00 app[web.1]:
2011-09-11T10:41:57+00:00 heroku[nginx]: 93.186.31.80 - - [11/Sep/2011:03:41:57 -0700] "GET /y HTTP/1.1" 404 728 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+" vivid-sky-685.heroku.com
2011-09-11T11:45:28+00:00 heroku[web.1]: Idl
2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from up to down
2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from down to created
2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from created to starting
2011-09-11T11:45:30+00:00 heroku[web.1]: Stopping process with SIGTERM
2011-09-11T11:45:30+00:00 app[web.1]: >> Stopping ...
2011-09-11T11:45:30+00:00 heroku[web.1]: Process exited
2011-09-11T11:45:30+00:00 heroku[web.1]: Starting process with command `thin -p 16738 -e production -R /home/heroku_rack/heroku.ru start`
2011-09-11T11:45:33+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2011-09-11T11:45:33+00:00 app[web.1]: >> Maximum connections set to 1024
2011-09-11T11:45:33+00:00 app[web.1]: >> Listening on 0.0.0.0:16738, CTRL+C to stop
2011-09-11T11:45:33+00:00 heroku[web.1]: State changed from starting to up
2011-09-11T12:53:00+00:00 heroku[web.1]: Idling
2011-09-11T12:53:01+00:00 heroku[web.1]: State changed from up to down
2011-09-11T12:53:02+00:00 heroku[web.1]: Stopping process with SIGTERM
2011-09-11T12:53:02+00:00 app[web.1]: >> Stopping ...
2011-09-11T12:53:02+00:00 heroku[web.1]: Process exited
2011-09-11T13:18:21+00:00 heroku[rake.1]: State changed from created to starting
2011-09-11T13:18:23+00:00 app[rake.1]: Awaiting client
2011-09-11T13:18:23+00:00 app[rake.1]: Starting process with command `bundle exec rake db:migrate`
2011-09-11T13:18:26+00:00 heroku[rake.1]: Process exited
2011-09-11T13:18:26+00:00 heroku[rake.1]: State changed from up to complete
2011-09-11T13:20:02+00:00 heroku[web.1]: Unidling
2011-09-11T13:20:02+00:00 heroku[web.1]: State changed from down to created
2011-09-11T13:20:02+00:00 heroku[web.1]: State changed from created to starting
2011-09-11T13:20:04+00:00 heroku[web.1]: Starting process with command `thin -p 48393 -e production -R /home/heroku_rack/heroku.ru start`
2011-09-11T13:20:06+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2011-09-11T13:20:06+00:00 app[web.1]: >> Maximum connections set to 1024
2011-09-11T13:20:06+00:00 app[web.1]: >> Listening on 0.0.0.0:48393, CTRL+C to stop
2011-09-11T13:20:07+00:00 heroku[web.1]: State changed from starting to up
2011-09-11T13:20:07+00:00 app[web.1]:
2011-09-11T13:20:07+00:00 app[web.1]:
2011-09-11T13:20:07+00:00 app[web.1]: Started GET "/" for 118.137.144.220 at 2011-09-11 06:20:07 -0700
2011-09-11T13:20:08+00:00 app[web.1]:
2011-09-11T13:20:08+00:00 app[web.1]: ActionController::RoutingError (uninitialized constant PagesController):
2011-09-11T13:20:08+00:00 app[web.1]:
2011-09-11T13:20:08+00:00 app[web.1]:
2011-09-11T13:20:08+00:00 app[web.1]:
2011-09-11T13:20:08+00:00 heroku[router]: GET vivid-sky-685.heroku.com/ dyno=web.1 queue=0 wait=0ms service=403ms status=404 bytes=728
2011-09-11T13:20:08+00:00 heroku[nginx]: 118.137.144.220 - - [11/Sep/2011:06:20:08 -0700] "GET / HTTP/1.1" 404 728 "-" "Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/4.0" vivid-sky-685.heroku.com
Ответы
Ответ 1
У меня такая же проблема; однако, после изменения 1 строкового кода production.rb, расположенного в config/environments/production.rb
от
config.assets.compile = false
к
config.assets.compile = true
зафиксировать новое изменение. Тогда мое приложение-образец отлично работает на heroku
Ответ 2
Я знаю, что это старая проблема, но я столкнулся с ней. Я понял, что я не изменил корневой маршрут в config/routes.rb
перед нажатием. Не меняя его, может появиться страница приветствия на локальном компьютере, но на геройку она получит ошибку выше.
Ответ 3
Я использую postgresql, и у меня также была страница, не отображающая герою.
Эта команда зафиксировала это:
heroku run rake db:setup
а затем
heroku rake db:migrate
Я раньше мигрировал, но сначала не выполнял настройки.
Я также попытался установить
config.assets.compile = true
в production.rb, но это не имело значения.
Ответ 4
Вы пытались работать в рабочем режиме локально? Попробуйте rails server -e production
и посмотрите, получится ли у вас такая же ошибка, которую вы можете отлаживать. Также убедитесь, что вы сделали heroku rake db:migrate
.
Ответ 5
В моем случае это была отсутствующая стартовая страница, которая не вызывала проблемы в режиме разработки, но вызывала вышеупомянутую проблему на герою. Принятый ответ в этой теме проливает больше света.
Ответ 6
В эту проблему тоже входит. Решил его, установив корневой маршрут. В моем случае root 'pages#home'
в config/routes.rb
Если корневой маршрут не установлен, вы перенаправляетесь на localhost: 3000. Следовательно,
Страница, которую вы искали, не существует. Возможно, вы ошиблись адрес или страница может быть перемещена.
Ответ 7
1. Всегда устанавливайте корень в маршрутах. Это рельсы 101
Я бы не стал задумываться о том, чтобы сделать предварительную компиляцию активов все время. Для производственного приложения я чувствую, что он увеличивает общую скорость, если активы были предварительно скомпилированы.
2. Как правило, я всегда запускаю rake assets:precompile
до нажатия на git. Попробуйте. а затем зафиксировать репозиторий git, а затем герою. Do heroku restart
3. Другой причиной может быть герой rake db: migrate, проверьте, выполнили ли вы это
4. Также это моя настройка Gemfile для групп разработки и производства
group :development do
gem 'sqlite3'
end
group :production do
gem 'pg'
gem 'rails_12factor'
gem 'heroku-deflater'
end
Ответ 8
У меня была очень похожая проблема с герокой, я нашел ответ на этот вопрос:
Маршруты RefineryCMS для домашней страницы не работают
Чтобы сохранить чтение, решение было обновить "Домой" с помощью дополнительных опций, возникает вопрос:
"Переслать эту страницу на другой сайт или страницу"
Заполните это с помощью /
, и оно должно работать. Это звучит немного назад, поскольку его фактическая настройка /my _page перенаправляется на "/". Но способ думать об этом:
Расширение страниц НПЗ ищет страницу с URL-адресом '/' на главной странице. Поэтому, указав страницу "Домой", которую вы хотите, иметь URL-адрес '/' вы устанавливаете его как окончательную домашнюю страницу, как что касается расширения страниц НПЗ. (цитата из @Philip Arndt)
Ответ 9
Поэтому мне пришлось работать в этом порядке, и это сработало для меня
$ heroku rake db:migrate
$ heroku run rake db:setup
Ответ 10
Укажите версию Ruby в приложении.
Rails 5 требует Ruby 2.2.0 или выше. У Heroku установлена последняя версия Ruby по умолчанию, однако вы можете указать точную версию, используя рубиновый DSL в своем Gemfile.
В конце Gemfile добавьте:
ruby "2.4.1"
Ответ 11
У меня была такая же проблема, но дело в том, что в приложении отсутствует домашняя страница, как root. Домашняя страница по умолчанию для Heroku - это HTMLстраница по умолчанию. Но если вы попробуете все определенные маршруты, они будут работать так:
appname.herokuapp.com/route
Ответ 12
Я получил ту же ошибку, но понял, что я не изменил глагол HTML с GET на ROOT в файле config/rout.rb.
Это было get "/hello", to: "application#hello"
Я обновил его до root "application#hello"
Затем я подтолкнул его к Git и развернул его в производство.
Ответ 13
Я столкнулся с той же ошибкой, потому что я протолкнул ту же ветвь, не являющуюся хозяином, к хозяину heroku с помощью этой команды git push heroku master
. Которые явно вызывают конфликты.
Я также проверил маршруты, используя heroku run rake routes
. Но на выходе не было моих реальных маршрутов. Даже не один.
Правильный способ подтолкнуть вашу неосновную ветвь к хозяину герою - это
git push -f heroku your_branch_name:master