如何使用Sinatra呈现纯HTML文件?
我有一个简单的sinatra应用程序。 我想要做的就是使用它作为包装器来在特定路由上提供静态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
send_file是否符合您的要求?
例如
get '/myspecialroute' do send_file 'special.html' end
你可以这样做:
get '/myspecialroute' do redirect '/myspecialroute.html' end
这对我有用:
require 'rubygems' require 'sinatra' get '/index.html' do @page_title = 'Home' @page_id = 'index.html' erb :'index.html', { :layout => :'layout.html' } end