Ответ 1
Rails не использует Rack::Static
, у него есть своя версия ActionDispatch::Static
. Вы должны увидеть его, если вы запустите rake middleware
.
Это добавляется к стеку промежуточного программного обеспечения Rails если config.serve_static_assets
истинно. Этот параметр по умолчанию соответствует true, но созданный по умолчанию config/environments/production.rb
отключается, если отключен.
Идея заключается в том, что во время разработки у вас есть простой единый процесс, который вы можете запустить и проверить, что все работает, и где производительность не является проблемой, но при развертывании в производство вы настраиваете свой веб-сервер (обычно Apache или Nginx) на обслуживать статические файлы, так как он намного лучше, чем Ruby.
Если вы используете Heroku, их последний стек Cedar не использует отдельный веб-сервер для статических файлов, поэтому как часть процесса развертывания они вводят Плагин Rails для обслуживания статических активов. Весь этот плагин установлен serve_static_assets
на true.