Как я могу заставить Sinatra установить длину содержимого в зависимости от размера статического файла? - PullRequest
3 голосов
/ 23 декабря 2011

Я работаю над приложением Sinatra и только начал добавлять кеширование. Некоторые из моих файлов кэшируются правильно, но я продолжаю видеть это предупреждение при отправке изображения в папку public:

ПРЕДУПРЕЖДЕНИЕ: не удалось определить длину содержимого тела ответа. Задавать длина содержимого ответа или установить Response # chunked = true.

Я не понимаю, почему я получаю это предупреждение. Sinatra правильно передает файл из общей папки и говорит, что по умолчанию этот заголовок соответствует размеру файла.

Я использую следующие примеры настроек из README :

set :static_cache_control => [:public, :max_age => 60]

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

Как заставить Sinatra правильно установить заголовок длины содержимого для размера статического файла?

Ответы [ 2 ]

1 голос
/ 20 января 2012

Еще один обходной путь, который удаляет оскорбительную строку из webrick. Это просто не так полезно:

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

(вам может понадобиться sudo)

0 голосов
/ 26 декабря 2011

Очевидно, это сообщение безопасно игнорировать.

См. Что означает «ПРЕДУПРЕЖДЕНИЕ Не удалось определить длину содержимого тела ответа».значит и как мне от него избавиться? , или, если вы предпочитаете получить ответ от источника, см. вопрос на https://twitter.com/#!/luislavena/status/108998968859566080 и ответ на https://twitter.com/#!/tenderlove/status/108999110136303617.

Обходной путь: используйте thin

Если сообщения вас беспокоят, вы можете обойти это, используя thin.Добавьте gem 'thin' в ваш Gemfile, затем запустите ваш сервер, используя thin:

% bundle install
% rails server thin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...