Подтвердить что ты не робот

Rails 4 Static Public index.html

Извините за простой вопрос, но я не могу найти подходящее исправление где угодно.

Раньше у меня было приложение Rails 3.x с простой целевой страницей public/index.html. Конечно, когда я обновлялся до Rails 4, моя индексная страница больше не отображается. Есть ли способ вернуть эту функцию?

Я знаю, что могу создать индексный контроллер/маршрут приветствия # и отобразить index.html в качестве ответа. Но это происходит в другой папке, без всех ресурсов изображения и css, которые были на публике, и отображая прежнюю статическую страницу.

Любые советы?

4b9b3361

Ответ 1

Вам нужно использовать контроллер, но можете просто указать его на существующий файл.

например. в routes.rb

root :to => 'welcome#index'

И затем в контроллере приветствия:

def index
  render :file => 'public/index.html'
end

Кроме того, вы можете настроить Apache для работы с этим файлом. Кажется, проще Rails сделать это, хотя!

Ответ 2

Размещение public/index.html и удаление корневой директивы из config/routes.rb работает для меня.

$ rails --version
$ Rails 4.2.0

Ответ 3

Проблема с просто добавлением public/index.html заключается в том, что индексная страница может не отображаться, если отсутствует корневой путь /.

Например, если приложение размещено в суб-uri, 'http://example.com/my-app/' ударит index.html, но ' http://example.com/my-app '(no trailing /) не может. Вероятно, это может быть исправлено в конфигурации веб-сервера, но если вы не контролируете это, вы можете исправить это на маршрутах с помощью:

root to: redirect('index.html')