【问题标题】:Sinatra: What's the correct way to serve a plain old file?Sinatra:提供普通旧文件的正确方法是什么?
【发布时间】:2010-02-05 06:54:02
【问题描述】:

这行得通,但它是在黑暗中刺伤。我认识一点 Ruby。

为给定资源提供普通旧文件的公认方式是什么?

get '/xyz' do
    File.read 'abc.html'
end

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:

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

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

    【讨论】:

    • 在 1.3.0 版本中配置关键字是 changed:public:public_folder
    【解决方案2】:

    从 ./public 目录中提供它。请参阅自述文件的Static Files 部分和:static and :public configuration options

    【讨论】:

    • 它怎么知道用 :static 将 /xyz 映射到 abc.html? File.read 是输出命名文件的正确方法吗?
    • 啊,我误会了。如果您配置 :public 并希望 abc.html 指向 webserver/abc.html 并且 sinatra 不会路由它只会提供 html。如果您想自定义路由并提供静态文件,我认为 nstehr 已经掌握了。当然,您也可以在公共目录中将 abc.html 命名为 xyz(或 symlin),但我仍然认为我喜欢 nstehr 的方式。
    猜你喜欢
    • 2013-05-03
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2018-11-04
    • 2020-08-31
    • 2015-02-10
    相关资源
    最近更新 更多