рельсы 3.1.0: изображения с отпечатками пальцев не загружены в производство - PullRequest
1 голос
/ 17 октября 2011

Моя проблема: все изображения загружаются неправильно, когда я запускаю приложение в производственном режиме. Я вижу только заполнитель для изображения. Когда я копирую URL-адрес изображения, я получаю «assets / mylogo.png». Я скучаю по отпечатку пальца.

Моя конфигурация:

Драгоценные камни:

rails 3.1.0
compass, :git => 'git://github.com/chriseppstein/compass.git'
sprockets 2.0.2

config / application.rb:

config.assets.enabled = true

config / environment / production.rb:

config.cache_classes = true
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true

После развертывания я запускаю

rake assets:clean
rake assets:precompile

В папке public / assets находятся все изображения (и файлы js, css) с отпечатком в конце.

В режиме разработки все работает нормально. Я не могу понять, почему изображения не используются правильно.

1 Ответ

1 голос
/ 22 октября 2011

Я вижу проблему. Вам не хватает этих строк в производственной конфигурации:

config.assets.digest = true
config.assets.compile = false

Первый включает добавление дайджестов к выходу из помощников.

Второй приказывает rails НЕ передавать запросы на ресурсы обратно в Sprockets, а предполагать, что они предварительно скомпилированы (это то, что вам нужно).

В Rails 3.1.0 предварительно скомпилированы только переваренные ресурсы, поэтому вы получили заполнитель. В 3.1.1 не дайджестные версии также скомпилированы, так что конфигурация сработала бы, но лучше всего использовать дайджесты.

В последнем разделе руководства по конвейеру активов содержится список правильных параметров конфигурации для работы по умолчанию.

...