Don't set resp Content-Type for some status codes
There must not be a Content-Type set when the Status is 1xx, 204, 205 or 304, otherwise Rack blows up with the following error: "Content-Type header found in 304 response, not allowed"
This commit is contained in:
parent
83d83c5c8c
commit
2a8b22558a
1 changed files with 6 additions and 1 deletions
|
@ -291,8 +291,13 @@ module Middleman
|
|||
file = ::Rack::File.new nil
|
||||
file.path = resource.source_file
|
||||
response = file.serving(env)
|
||||
status = response[0]
|
||||
response[1]['Content-Encoding'] = 'gzip' if %w(.svgz .gz).include?(resource.ext)
|
||||
response[1]['Content-Type'] = resource.content_type || "application/octet-stream"
|
||||
# Do not set Content-Type if status is 1xx, 204, 205 or 304, otherwise
|
||||
# Rack will throw an error (500)
|
||||
if !(100..199).include?(status) && ![204, 205, 304].include?(status)
|
||||
response[1]['Content-Type'] = resource.content_type || "application/octet-stream"
|
||||
end
|
||||
halt response
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue