Как сделать простой HTML-файл с помощью Sinatra? - PullRequest
25 голосов
/ 03 ноября 2011

У меня есть простое приложение синатры. Все, что я хочу сделать, это использовать его в качестве оболочки для обслуживания статического HTML-файла по определенному маршруту. Моя структура каталогов выглядит так:

/directory
    myhtmlfile.html
    app.rb

Мой app.rb файл выглядит так:

require 'sinatra'

get '/myspecialroute' do
    html :myhtmlfile      # i know html is not a method, but this is what I would like to do
end

Как я могу написать это так, чтобы я мог сохранить свой HTML-файл простым HTML-файлом, но обслуживать его по специальному маршруту?

Решение:

Благодаря этому я узнал несколько разных способов сделать это:

get '/myspecialroute' do
  File.read('myhtmlfile.html')
end

Это откроет, прочитает, закроет, а затем вернет файл в виде строки.

Или есть вспомогательная функция, чтобы сделать это чище:

get '/myspecialroute' do
  send_file 'myhtmlfile.html'
end

Ответы [ 3 ]

41 голосов
/ 03 ноября 2011

send_file делает то, что вы хотите?

, например

  get '/myspecialroute' do
     send_file 'special.html'
  end
2 голосов
/ 03 ноября 2011

Вы можете сделать это так:

get '/myspecialroute' do
  redirect '/myspecialroute.html'
end
0 голосов
/ 03 февраля 2017

Это работа для меня:

require 'rubygems'
require 'sinatra'

get '/index.html' do
    @page_title = 'Home'
    @page_id = 'index.html'
    erb :'index.html', { :layout => :'layout.html' }
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...