我该如何让Sinatra根据静态文件的大小设置内容长度?

3
我正在开发一个Sinatra应用程序,并开始添加缓存。我的一些文件已经被正确地缓存了,但是当在public文件夹中提供图像时,我看到了如下警告: WARN: Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true.
我不明白为什么会出现这个警告。Sinatra已经从public文件夹正确地提供了该文件,并且它说默认情况下将此标头设置为文件大小。
我正在使用README中的以下示例设置:
set :static_cache_control => [:public, :max_age => 60]

before do
  cache_control :public, :must_revalidate, :max_age => 60
end

我该如何让Sinatra正确设置content-length头部以匹配静态文件的大小?

我也很感兴趣 :-) - Sergio Tulentsev
这条消息“可以忽略但需要清理”。请参见https://dev59.com/Amw05IYBdhLWcg3wsz7N - fearless_fool
2个回答

1

另一个解决方法是从webrick中删除有问题的行。但它并不是那么有用:

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

(你可能需要使用sudo


-2

显然,这条消息可以忽略。

请参见“WARN Could not determine content-length of response body.”是什么意思,如何摆脱它?,或者如果您更喜欢从源头得到答复,请参见https://twitter.com/#!/luislavena/status/108998968859566080上提出的问题和https://twitter.com/#!/tenderlove/status/108999110136303617上的答案。

解决方法:使用thin

如果这些消息困扰您,您可以通过使用thin来解决。将gem 'thin'添加到您的Gemfile中,然后使用thin启动服务器:

% bundle install
% rails server thin

这个负评是因为我没有回答实际问题吗?好的,我以后不会再这么做了,尽管我认为这是一个有用的回答... - fearless_fool

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