Существует ли стандартный способ обслуживания предварительно сжатых ресурсов в Rails 3.2 на Heroku Cedar? - PullRequest
6 голосов
/ 22 марта 2012

У меня есть приложение Rails 3.2, которое я развертываю в стеке Heroku Cedar.Это означает, что само приложение отвечает за обслуживание своих статических ресурсов.Мне бы хотелось, чтобы эти ресурсы были сжаты, поэтому я вставил Rack::Deflater в свой стек промежуточного ПО в production.rb:

middleware.insert_after('Rack::Cache', Rack::Deflater)

... и curl говорит мне, что это работает так, как рекламируется.

Однако, поскольку Heroku приложит все усилия для запуска rake assets:precompile, производя кучу предварительно сжатых ресурсов, я бы очень хотел использовать их (вместо того, чтобы позволить Rack::Deflater делать всеопять работа).Я видел рецепты для их обслуживания с помощью nginx (бесполезно на Heroku) и с CDN (пока не хочу использовать CDN), но я не видел ничего, что могло бы работать автономно.Для этого я взломал промежуточное программное обеспечение стойки , но мне было интересно, лучший ли это способ?

1 Ответ

2 голосов
/ 01 апреля 2012

Поскольку дефлятор находится после кэша стойки, дефлятор должен будет выполнять работу только один раз, и после этого сжатые ресурсы будут обслуживаться из кэша стойки (при условии, что кэш достаточно велик, чтобы их время от времени не выгружали ).

Тем не менее, ваше промежуточное ПО выглядит довольно круто, и вы должны сделать его самоцветом и блогом об этом, возможно, это будет то, что люди начнут использовать: -)

...