Rails 3 не может найти маршрут к статической странице - PullRequest
3 голосов
/ 25 октября 2010

Я пробираюсь через Ruby on Rails. Учебник. Изучите Rails на примере. Я нахожусь в разделе, озаглавленном «В основном статические страницы».

Я получаю сообщение об ошибке после создания HTML-страницы в общедоступном каталоге, которая называется public / hello.html и должна выглядеть так, как показано на рисунке 3.3. Моя проблема в том, что когда я пытаюсь создать страницу и заставить ее появиться в localhost: 3000 / hello.html, я не вижу отображаемую страницу. Вместо этого я получаю сообщение об ошибке «Ошибка маршрутизации. Не найдено ни одного маршрута» / hello.html »

Я не внес никаких изменений в маршрутизацию; Я думал, что Rails должен был быть достаточно умным, чтобы найти «hello.html», потому что он находится в том же каталоге, что и страница «public / index.html», а имя страницы - «hello.html»?

Не могли бы вы объяснить?

Ответы [ 5 ]

4 голосов
/ 30 октября 2010

Если вы похожи на меня и просматриваете книгу, я оставил сервер работающим из предыдущей главы, поэтому он все еще загружал index.html из каталога demo_app.

1 голос
/ 01 апреля 2011

Вы следуете старому гиду. Более новая версия

http://ruby.railstutorial.org/chapters/static-pages#sec:green

говорит вам, что вам нужно изменить маршруты. Я провел около часа, плача об этом.

0 голосов
/ 27 января 2013

Еще раз просмотрите каталог приложения и сохраните файл в (мой случай):

C: \ Users \ Nnamdi \ rails_projects \ sample_app \ Public \ hello.html

У меня была та же проблема, но я понял, что не сохранил ее в нужном каталоге ..Решение выше должно работать .. cheers

0 голосов
/ 20 апреля 2011

Переместить файл в общую папку. Это помогло мне.

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

0 голосов
/ 25 октября 2010

Вы уверены, что набрали это правильно?Похоже, вы набрали «localhost: 3000 / [space] hello.html» вместо «localhost: 3000 / hello.html».Пожалуйста, проверьте дважды.

...