我正在研究Sinatra应用程序并刚刚开始添加缓存。我的部分文件已正确缓存,但在public
文件夹中提供图像时,我一直看到此警告:
警告:无法确定响应正文的内容长度。组 响应的内容长度或设置Response#chunked = true。
我不明白为什么我会收到这个警告。 Sinatra正在从公共文件夹中正确地提供文件,它说它将此标头默认为文件大小。
我正在使用the README中的以下示例设置:
set :static_cache_control => [:public, :max_age => 60]
before do
cache_control :public, :must_revalidate, :max_age => 60
end
如何让Sinatra正确地将内容长度标题设置为静态文件的大小?
答案 0 :(得分:1)
从webrick中删除违规行的另一种解决方法。它没那么有用:
cd `which ruby`/../../lib/ruby/1.9.1/webrick/ && sed -i '.bak' -e'/logger.warn/d' httpresponse.rb
(您可能需要sudo
)
答案 1 :(得分:-2)
显然,此消息可以安全忽略。
请参阅What does "WARN Could not determine content-length of response body." mean and how to I get rid of it?,或者如果您希望从来源获得回复,请参阅https://twitter.com/#!/luislavena/status/108998968859566080提出的问题和https://twitter.com/#!/tenderlove/status/108999110136303617的回答。
如果消息困扰您,您可以使用thin来解决它。将gem 'thin'
添加到Gemfile,然后使用thin:
% bundle install
% rails server thin