Sinatra:如何正确地提供一个普通的旧文件?

13

这样做是有效的,但我是凭感觉尝试的。我对Ruby了解甚少。

提供一个普通文件来获取特定资源的被认可的方式是什么?

get '/xyz' do
    File.read 'abc.html'
end
2个回答

16

你可以使用set :public来指定静态文件目录。然后,你可以使用send_file()函数来提供文件,例如:

    get '/static_file' do
      send_file('my_static_file')
   end 

1
配置关键字在1.3.0版本中已从:public更改为:public_folder,详见更改日志 - mlovic

4

它如何知道使用:static将/xyz映射到abc.html?File.read是输出命名文件的正确方法吗? - xyz
啊,我误解了。如果你配置了 :public 并且想访问 abc.html ,那么请指向 http://webserver/abc.html,Sinatra 就不会路由,只会提供 html。如果你想自定义路由并提供一个静态文件,我认为 nstehr 已经解决了这个问题。当然,你也可以将 abc.html 命名为 xyz(或在 public 目录中使用符号链接),但我仍然认为我喜欢 nstehr 的方法。 - Mark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接