Serving static files with Sinatra
Without any additional configuration, Sinatra will serve assets in public
. For the empty route, you'll want to render the index document.
require 'rubygems'require 'sinatra'get '/' do File.read(File.join('public', 'index.html'))end
Routes should return a String
which become the HTTP response body. File.read
opens a file, reads the file, closes the file and returns a String
.
You could just host them from the public folder and they do not need routes.
.-- myapp.rb`-- public |-- application.css |-- application.js |-- index.html `-- jquery.js
In the myapp.rb
set :public_folder, 'public'get "/" do redirect '/index.html'end
Link to some sub folder in public
set :public_folder, 'public'get "/" do redirect '/subfolder/index.html' end
Everything in ./public is accessible from '/whatever/bla.html
Example :
./public/stylesheets/screen.css
Will be accessible via '/stylesheets/screen.css' no route required