質問

のシナトラルビーの枠組み、経路のようになります:

get '/portfolio/:item' do
  haml params[:item].to_sym
end

この作品の良さにテンプレートに存在する(例えば、してください /portfolio/website, いテンプレートと呼ばれ /views/website.hamlもばいるURLでないテンプレートのように、 example.com/portfolio/notemplate, 人にとってこのエラー:

Errno::ENOENTで/ポートフォリオ/notemplate
なファイルやディレクトリに-/.../views/notemplate.haml

たいのですが試験ャるかどうかをテンプレートが存在する?見つからなる"がテンプレートが存在する"方法をSinatraます。

役に立ちましたか?

解決

だが、シナトラの特定について教えてくださいもののきものErrno::ENOENTの例外のような:

get '/portfolio/:item' do
  begin
    haml params[:item].to_sym
  rescue Errno::ENOENT
    haml :default
  end 
end

他のヒント

最初の答えいた場合のファイルが存在しないシンボルを作成します。ていただけないゴミ収集したい簡単に漏れます。ものddos攻撃にnonexisitngファイルを作り出す記号です。代わりにこのルートを使用することがこれからも事業のルーティングcssファイル):

# sass style sheet generation
get '/css/:file.css' do
  halt 404 unless File.exist?("views/#{params[:file]}.scss")
  time = File.stat("views/#{params[:file]}.scss").ctime
  last_modified(time)
  scss params[:file].intern
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top