Rails 4 Static Public index.html
Извините за простой вопрос, но я не могу найти подходящее исправление где угодно.
Раньше у меня было приложение Rails 3.x с простой целевой страницей public/index.html. Конечно, когда я обновлялся до Rails 4, моя индексная страница больше не отображается. Есть ли способ вернуть эту функцию?
Я знаю, что могу создать индексный контроллер/маршрут приветствия # и отобразить index.html в качестве ответа.
Но это происходит в другой папке, без всех ресурсов изображения и css, которые были на публике, и отображая прежнюю статическую страницу.
Любые советы?
Ответы
Ответ 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')