1

私はSinatraでプロジェクトを実行していますが、サブディレクトリに多くのファイルがあるので、それらのファイルのリストをそれぞれのディレクトリとともに表示したいと思います。たとえば、アドレスバー「localhost:4567 / landing /」を入力します。ここで、landingは一部のページのコンテナですが、「Sinatraはこのディティーを知りません」とスローします。それを行う方法はありますか?私が何を求めているのか理解していただければ幸いです。

4

1 に答える 1

4

Sinatraはローカルファイルシステムを処理せず、HTTPルートを処理します。たとえば、'/'inget '/' doは、Webサイトのルートディレクトリではなく、WebサイトのルートURLを参照します。Dirローカルファイルを一覧表示するには、次のようなRubyクラスを使用する必要があります。

#!/usr/bin/env ruby

require 'rubygems'
require 'sinatra'

get '/' do
   Dir.entries('.').map { |e| "<p>#{e}</p>" }
end

編集:もちろん、ルートを使用してもファイルシステムを直接操作するのは危険なので、少し読んで舞台裏で何が起こっているのかをよりよく理解することをお勧めします。

于 2012-08-24T18:46:51.827 に答える