"WARn Can't can't decision-length of response body"는 무엇을 의미하며 어떻게 제거해야 합니까?
Rails 3.1로 업그레이드한 후 개발 로그에 다음과 같은 경고 메시지가 표시됩니다.
경고 응답 본문의 내용 길이를 확인할 수 없습니다.응답 또는 집합의 내용 길이 설정
Response#chunked = true
이것은 무엇을 의미하며 어떻게 제거할 수 있습니까?그게 문제야?
Rails-Core의 멤버 중 한 명에게도 같은 질문을 했습니다.
https://twitter.com/luislavena/status/108998968859566080
그리고 대답은:
https://twitter.com/tenderlove/status/108999110136303617
네, 괜찮습니다.치워야 하는데 다친 데는 없어요.
다음 패치를 통해 제 경우의 문제가 해결되었습니다. 더 이상 경고는 하지 않습니다.
위의 링크와 같이 205번 줄에서 httpresponse.rb 파일을 편집하면 됩니다. 실제로 링크는 향후 Ruby 릴리스에 대한 수정 사항을 보여줍니다.
RVM을 통해 설치된 루비 1.9.3-p0의 레일 3.2.0을 단일 사용자로 사용하고 있습니다.그럼 제 사건의 위치는 다음과 같습니다.
~/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb
변경할 파일의 위치는 설치 유형, RVM 여부 또는 다중 사용자 또는 단일 사용자에 따라 다르므로 마지막 부분만 설명합니다.
.../ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpresponse.rb
저는 이것이 누군가에게 도움이 될 수 있기를 바랍니다.
편집: 루비 프로젝트의 트렁크 브랜치에서 문제의 행을 변경한 커밋에 대한 링크입니다.
젬 파일에 젬을 명시적으로 추가하기만 해도 경고 메시지가 사라졌습니다.
group :development do
gem 'webrick', '~> 1.3.1'
end
기본 Webrick 대신 Thin을 사용할 수도 있습니다.추가할 위치Gemfile
gem 'thin'
그리고나서rails s thin
얇은 두께를 사용하고 경고는 사라집니다.
.rvm을 사용하는 경우 이 작업을 수행하여 수정합니다.
주앙 소아레스가 언급한 바와 같이, 모두 그의 공로입니다. 이것은 개발에 대한 경고를 없애고 싶지 않다면 할 수 있는 일입니다.
즐겨찾기 편집기를 사용하여 이 파일을 엽니다.
~/.rvm/rubies/<ruby-version>/lib/ruby/1.9.1/webrick/httpresponse.rb
이 내용이 포함된 줄로 이동합니다(나에게는 정말 206 줄이었습니다).
if chunked? || @header['content-length']
이 패치에서 가져온 것을 다음으로 변경합니다.
if chunked? || @header['content-length'] || @status == 304 || @status == 204
파일을 저장한 후 레일 서버를 다시 시작합니다.
이 문제는 webbrick에 대한 이 커밋으로 Ruby의 트렁크 지점에서 해결되었습니다.
설정에서 이 특정 webbrick 파일을 유사하게 편집할 수 있습니다.대략적인 위치는 다음과 같습니다.
gem which webrick
파일을 실제로 편집하려면:
nano \`ruby -e"print %x{gem which webrick}.chomp %Q{.rb\n}"\`/httpresponse.rb
(또는 nano 대신 좋아하는 편집기를 사용합니다.)
JRuby 버전:.rvm을 사용하는 경우 이 작업을 수행하여 수정합니다.
Jooo Soares와 Kjellski가 언급한 것처럼, 이것은 개발에 대한 이 경고를 없애고 싶고 JRuby를 사용하고 있다면 할 수 있는 것입니다.
즐겨찾기 편집기를 사용하여 이 파일을 엽니다.
~/.rvm/rubies/jruby-<version>/lib/ruby/<1.8 or 1.9>/webrick/httpresponse.rb
이 내용이 포함된 줄로 이동(저는 205번 줄이었습니다):
if chunked? || @header['content-length']
이 패치에서 가져온 것을 다음으로 변경합니다.
if chunked? || @header['content-length'] || @status == 304 || @status == 204
파일을 저장한 후 레일 서버를 다시 시작합니다.
위브릭에서 불쾌감을 주는 라인을 제거하는 또 다른 해결책입니다.별로 유용하지 않을 뿐입니다.
cd `which ruby`/../../lib/ruby/1.9.1/webrick/ && sed -i '.bak' -e'/logger.warn/d' httpresponse.rb
(필요할 수도 있습니다.sudo
)
더하다
config.middleware.use Rack::ContentLength
당신에게application.rb
파일을 작성하면 경고는 webbrick을 사용해도 사라집니다.이것 또한 설정됩니다.Content-Length
json 또는 text response를 렌더링할 때 적절하게 제작 중입니다.
언급URL : https://stackoverflow.com/questions/7082364/what-does-warn-could-not-determine-content-length-of-response-body-mean-and-h
'sourcecode' 카테고리의 다른 글
이전 커밋이 아닌 커밋 수정 (0) | 2023.11.04 |
---|---|
C에서 런타임에 매크로 변경 (0) | 2023.11.04 |
전원 셸 및 오류 ConvertTo-SecureString : 키가 지정된 상태에서 사용할 수 없도록 유효하지 않음을 사용하여 재사용을 위한 자격 증명 저장 (0) | 2023.10.30 |
C의 함수명은 어떤 타입입니까? (0) | 2023.10.30 |
jQuery에서 숫자에 쉼표를 더합니다. (0) | 2023.10.30 |