рельсы активов конвейер вопросы об уникальном хэше - PullRequest
1 голос
/ 13 марта 2012

1) Почему изображение, о котором известно, что оно не изменилось (логотип визы) имеет 3 разные версии на одном сервере и 4 разные версии на другом. Эти два сервера находятся в разных средах:

 ls -la public/a/visa-*
-rw-r--r-- 1 rails rails 1506 2012-03-04 06:33 public/a/visa-2c267b881e96647fbf8297637daf7132.gif
-rw-r--r-- 1 rails rails 1506 2012-01-14 02:33 public/a/visa-603d00ea229b0cb010f2cd1a0a486769.gif
-rw-r--r-- 1 rails rails 1506 2012-03-13 18:34 public/a/visa-fe533b87916500d8ab2ce4a72f45b942.gif

$ ls -la public/a/visa-*
-rw-r--r-- 1 rails rails 1506 2011-12-24 19:35 public/a/visa-4506288212ff5ef40a1af89abd829294.gif
-rw-r--r-- 1 rails rails 1506 2012-03-13 01:19 public/a/visa-4559e644c6dc9eccb35fc06cf3696bef.gif
-rw-r--r-- 1 rails rails 1506 2011-09-18 15:11 public/a/visa-873a9dddb6815e34ddc6049cfb3ec7d8.gif
-rw-r--r-- 1 rails rails 1506 2012-02-26 01:23 public/a/visa-9678ba047d426c775771509f364e8590.gif

... эта модель верна для каждого моего актива. Я думал, что идея заключается в том, чтобы имя файла основывалось на содержимом этого файла.

2) Если имя файла основано на содержимом файла, как рельсы отображают <% = image_tag 'foo.png'%> на собранный путь, включающий хэш?

3) Если имя файла предполагается , основываясь на содержимом файла, почему я «прекомпилирую» свои ресурсы при каждом развертывании В ТЕЧЕНИЕ ПРОЦЕССА DEPLOY - Теперь компиляция ресурсов на виртуальных машинах моего приложения занимает 6 минут. Во время моего развертывания. Остальная часть моего развертывания занимает около 30 секунд. - Почему не рекомендуется использовать шаблон для компиляции ресурсов перед развертыванием, проверки их в системе управления версиями и развертывания?

1 Ответ

1 голос
/ 14 марта 2012

1) Я думаю, что была ошибка в ранней версии Sprockets, которая это сделала - какую версию Rails (и Sprockets) вы используете?

2) Rails отображает активы в хэшированные имена на основе файла manifest.yml, который создается во время предварительной компиляции. Sprockets передает хэш отображения обратно в Rails, который сохраняет его в public / assets. Когда Rails загружается, он загружает этот файл в память для быстрого доступа.

3) Вы можете компилировать локально и фиксировать. Единственное предостережение в том, что вам нужно изменить префикс пути ресурса в development.rb, чтобы избежать обслуживания этих статических ресурсов в режиме разработки.

...