I have a simple sinatra application. All I want to do is use it as a wrapper to serve a static HTML file at a specific route. My directory structure looks like this:
/directory
myhtmlfile.html
app.rb
My app.rb
file looks like this:
require 'sinatra'
get '/myspecialroute' do
html :myhtmlfile # i know html is not a method, but this is what I would like to do
end
How can I write this so that I can keep my html file a plain html file but serve it at a special route?
Thanks to this, I learned a few different ways to do it:
get '/myspecialroute' do
File.read('myhtmlfile.html')
end
This will open, read, close, then return the file as a string.
Or there is a helper function to make this cleaner:
get '/myspecialroute' do
send_file 'myhtmlfile.html'
end
Does send_file do what you want?
e.g.
get '/myspecialroute' do send_file 'special.html' end
You can do it like this:
get '/myspecialroute' do redirect '/myspecialroute.html' end
This is work for me:
require 'rubygems'
require 'sinatra'
get '/index.html' do
@page_title = 'Home'
@page_id = 'index.html'
erb :'index.html', { :layout => :'layout.html' }
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With