Приложение Rails 5 api only с домашней страницей

Я сгенерировал приложение рельсы 5 API. Но я хочу мое приложение с домашней страницей. Для этого я сгенерировал домашний контроллер и добавил файл представления в соответствующие views / home / index.html.erb

Но когда я пытался получить к нему доступ, я получаю ответ ниже

Запущен GET "/ home / index" для 127.0.0.1 в 2016-07-14 11:14:03 +0530 Обработка HomeController # index как HTML выполнено 204 Нет контента в 0ms

Запущен GET "/home/index.js" для 127.0.0.1 в 2016-07-14 11:14:20 +0530 Обработка HomeController # index при выполнении JS 204 Нет содержимого в 0ms

Но я не мог видеть содержимое страницы индекса, отображаемой в Интернете.

Пожалуйста, поделитесь своими мыслями.

Ответы на вопрос(2)

Решение Вопроса

пытаясь создать приложение на Rails 5 API, которое могло бы все еще загружаться с одной html-страницы (перехваченной JS при загрузке). Кража подсказки отрельсы источник, Я создал следующий контроллер (обратите внимание, что он использует Rails 'вместо моегоApplicationController для этого одинокого не-api контроллера)

require 'rails/application_controller'

class StaticController < Rails::ApplicationController
  def index
    render file: Rails.root.join('public', 'index.html')
  end
end

и поставить соответствующий статический файл (обычный.htmlне.html.erb) вpublic папка. Я также добавил

get '*other', to: 'static#index'

в концеroutes.rb (после всех моих API-маршрутов), чтобы включить сохранение клиентской маршрутизации для перезагрузок, глубоких ссылок и т. д.

Без установки рута вroutes.rbRails будет обслуживать напрямую от публики/ и иначе ударит статический контроллер по не-API-маршрутам. В зависимости от вашего варианта использования, добавлениеpublic/index.html (без корня вroutes.rb) может быть достаточно, или вы можете достичь аналогичной вещи без лишнихStaticController используя

get '*other', to: redirect('/')

вместо этого, если вы не заботитесь о сохранении пути.

Хотелось бы узнать, есть ли у кого-нибудь еще лучшие предложения.

 Risto Keravuori11 авг. 2016 г., 03:00
Хороший улов, ты прав!
 Fernando Vieira10 авг. 2016 г., 14:44
Ницца! У меня была такая же проблема, и ты мне помог. Но вам не нужна строка "layout false".

что вам нужно, это просто статическая HTML-страница (с некоторыми простыми css / js), я думаю, что другой способ - это просто отредактироватьindex.html страница подpublic папка.

 smoothdvd03 июн. 2019 г., 04:10
Это Rail API контроллер, он не обслуживает статические публичные страницы
 buncis22 февр. 2019 г., 10:06
это правильно, просто создайте файл index.html внутри общей папки, не нужно создавать новые маршруты / контроллер

Ваш ответ на вопрос