Я вижу то же самое.
Я обнаружил, что консоль будет отображать только последний код состояния HTTP (200 OK), но с консолью отладчика я вижу другой код (304, "НеМодифицировано ". Подробнее об этом здесь )
Природа кода 304 такова, что ответ будет пустым, потому что сервер говорит вашему браузеру просто использовать кеш.Ваш браузер отправляет условный запрос GET (что должно быть нормальным поведением браузера?), И именно это заставляет ваш сервер вести себя таким образом.Ваш браузер не знает, что вы находитесь в режиме разработки, поэтому он будет вести себя как обычно.
Обратите внимание, что я смог обойти эту ошибку, выполнив CTRL-F5 для обновления (в Firefox),которая является командой для обновления и игнорирования кэша.Таким образом, браузер выполняет простой GET вместо условного.
Вот код, который я использовал, чтобы помочь мне понять, что происходит (требуется гем ruby-debug
).
def call(env)
status, headers, response = @app.call(env)
debugger
if headers["Content-Type"].include?("text/html")
[status, headers, "<!--hello world! -->" + response.body]
else
[status, headers, response]
end
end
После этого загрузите страницу и в терминале rail server
:
(rdb:1) irb
irb(#<PostRedirect:0x7f9c6292a530>):001:0> status
=> 304
Мое исправление заключалось в добавлении проверки кода состояния:
if (status != 304) && headers["Content-Type"].include?("text/html")