【发布时间】:2012-08-24 17:24:24
【问题描述】:
我在 Sinatra 上运行一个项目,现在它有很多文件和子目录,所以我想查看这些文件及其各自目录的列表。 例如,我在地址栏中输入“localhost:4567/landing/”,其中landing 是某些页面的容器,但它会抛出“Sinatra 不知道这个小曲”。 有没有办法做到这一点。 我希望你明白我在问什么。
【问题讨论】:
我在 Sinatra 上运行一个项目,现在它有很多文件和子目录,所以我想查看这些文件及其各自目录的列表。 例如,我在地址栏中输入“localhost:4567/landing/”,其中landing 是某些页面的容器,但它会抛出“Sinatra 不知道这个小曲”。 有没有办法做到这一点。 我希望你明白我在问什么。
【问题讨论】:
Sinatra 不处理本地文件系统,它处理 HTTP 路由。比如get '/' do中的'/'指的是你网站的根地址,而不是你网站的根目录。为了列出本地文件,您需要使用 Ruby Dir 类,如下所示:
#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
get '/' do
Dir.entries('.').map { |e| "<p>#{e}</p>" }
end
编辑:当然,直接使用文件系统是很危险的,即使使用路由也是如此,所以我建议您通过阅读 a 来更好地了解幕后发生的事情小。
【讨论】: