Я пытаюсь сделать что-то невероятно простое в Rails 5.0.0.alpha: отобразить HTML-файл, который не находится в каталоге public
.Rails отображает HTML-файл за пределами 'public'
Мой маршрут таков:
get '/api/docs' => 'static#documentation'
И мой StaticController
выглядит следующим образом:
class StaticController < ApplicationController
def documentation
render 'api/documentation/index.html'
end
end
index.html
файл я хочу сделать находится в app/views/api/documentation/index.html
.
Всякий раз, когда я загружаю /api/docs
в браузер, все, что я получаю, это ответ 200 OK
с пустой страницей, что означает, что ничего не отображается.
Я попробовал почти каждый вариант render
:
render 'app/views/api/documentation/index.html'
render 'views/api/documentation/index.html'
render 'api/documentation/index.html'
render '/documentation/index.html'
render 'app/views/api/documentation/index'
render 'views/api/documentation/index'
render 'api/documentation/index'
render '/documentation/index'
render file: 'app/views/api/documentation/index'
render file: 'views/api/documentation/index'
render file: 'api/documentation/index'
render file: '/documentation/index'
и т.д. Что мне не хватает?
Edit: выход сервера:
Started GET "/api/docs" for 198.167.XXX.XX at 2015-11-16 02:07:48 +0000
Processing by StaticController#documentation as HTML
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
Что выходной сервер? – Jason
@ Джейсон См. Мое редактирование. Как я уже сказал в этом вопросе, это ответ «200 OK», никаких ошибок ... –
Я видел, что вы упомянули об этом в вопросе, но, глядя на полный вывод сервера, мы видим, что «Rendered api/documentation/index. html' отсутствует. Кроме того, один способ, который вы можете установить, если найти файл, - это переименовать его и посмотреть, есть ли у вас ошибка «Шаблон отсутствует». Если это не вызывает ошибку, возможно, у вас есть проблема с пути. Если вы получите эту ошибку при переименовании файла, тогда он действительно нашел файл. В этом случае попробуйте 'puts render_to_string ('api/documentation/index.html')' и посмотреть, отображается ли содержимое файла на выходе сервера. – Jason