Ruby 如何让Sinatra根据静态文件设置内容长度';s码?

Ruby 如何让Sinatra根据静态文件设置内容长度';s码?,ruby,sinatra,Ruby,Sinatra,我正在开发Sinatra应用程序,刚刚开始添加缓存。我的一些文件已正确缓存,但在为公用文件夹中的图像提供服务时,我一直看到此警告: 警告:无法确定响应正文的内容长度。设置 响应或设置响应的内容长度#chunked=true 我不明白为什么我会收到这个警告。Sinatra正在从公用文件夹中正确地提供文件,并表示它将此头默认为文件大小 我正在使用以下示例设置: 如何让Sinatra将内容长度头正确设置为静态文件的大小?显然,可以忽略此消息 请参阅,或者如果您希望从来源处获得答复,请参阅在处提出的问题

我正在开发Sinatra应用程序,刚刚开始添加缓存。我的一些文件已正确缓存,但在为
公用
文件夹中的图像提供服务时,我一直看到此警告:

警告:无法确定响应正文的内容长度。设置 响应或设置响应的内容长度#chunked=true

我不明白为什么我会收到这个警告。Sinatra正在从公用文件夹中正确地提供文件,并表示它将此头默认为文件大小

我正在使用以下示例设置:


如何让Sinatra将内容长度头正确设置为静态文件的大小?

显然,可以忽略此消息

请参阅,或者如果您希望从来源处获得答复,请参阅在处提出的问题和在处给出的答案

解决方法:使用瘦的 如果这些消息让您感到困扰,您可以使用thin解决它。将
gem'thin'
添加到gem文件中,然后使用thin启动服务器:

% bundle install
% rails server thin

另一个解决方法是从webrick中删除有问题的行。只是没那么有用:

cd `which ruby`/../../lib/ruby/1.9.1/webrick/ && sed -i '.bak' -e'/logger.warn/d' httpresponse.rb

(您可能需要
sudo

我对此也感兴趣:-)此消息“可以安全忽略,但需要清理”。看,是不是因为我没有回答实际问题而投了反对票?很公平--我不会再这样做了,尽管我认为这是一个有用的答案。。。
cd `which ruby`/../../lib/ruby/1.9.1/webrick/ && sed -i '.bak' -e'/logger.warn/d' httpresponse.rb