Tôi nhận được lỗi sau khi nâng cấp lên Rails 4:"Không middleware như vậy để chèn trước: Rack :: Khóa (RuntimeError)" sau khi nâng cấp lên Rails 4
.../ruby-1.9.3-p125/gems/actionpack-4.0.0.rc2/lib/action_dispatch/middleware/stack.rb:125:in 'assert_index': No such middleware to insert before: Rack::Lock (RuntimeError)
Dòng vi phạm là "remove slashes" quy tắc ghi đè giá của tôi:
config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do
r301 %r{^/(.*)/$}, '/$1', :headers => {'Cache-Control' => 'public, max-age='+2.week.to_s}
end
Bất kỳ ý tưởng nào?
Chỉ cần một điều mà nhầm lẫn tôi trong một thời gian là 'cào middleware' được trả về toàn bộ danh sách các middleware dự kiến bao gồm' Kệ :: Lock' nhưng rspec của tôi kiểm tra đã thất bại do không tìm thấy 'Rack :: Lock'. Cuối cùng tôi nhận ra (bằng cách kiểm tra config.middleware trực tiếp) rằng rspec tất nhiên là không tải toàn bộ chồng phần mềm trung gian. Do đó, tôi đã chuyển các ghi đè sang 'config/environment/production.rb' vì tôi sẽ không thử nghiệm các chuyển hướng này trong rspec. –
Cảm ơn bạn đã tìm hiểu điều này! Tài nguyên bạn đang liên kết đến trong câu trả lời của bạn không còn tồn tại. – Aaron