Результат прекомпиляции конвейера активов рабочей среды Rails отличается на разных машинах

Я пытаюсь развернуть мое приложение в рабочей среде, когда при использовании конвейера ресурсов с командой "RAILS_ENV= производственные грабли активов: прекомпиляция" я нахожу значение хеш-функции, отличающееся от значения в моей локальной прекомпиляции (но тот же результат компиляции машины тот же), например:

производство: login-23ec3a8268b84dd41a8247f0152e9263.png

local: login-1fdc804afc03e64346d254c5fbd1045c.png

но кодовая база все одинаковая. Потом я пытаюсь скомпилировать его на другой машине, результат у всех разный.

Так может кто-нибудь помочь мне или указать, какая ошибка у меня есть. Спасибо большое.

Обновить:

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

local / Users / user / MyApp: login-1fdc804afc03e64346d254c5fbd1045c.png

remote / Users / user / MyApp: login-1fdc804afc03e64346d254c5fbd1045c.png

но я хочу, чтобы хеш-значение скомпилированных активов не было связано с абсолютным путем

Наконец-то я понял это:

Я использую angular-rails-templates-0.2.0, он имеет конфигурацию по умолчанию: https://github.com/pitr/angular-rails-templates

И я не изменил этот конфиг. Этот регистр lib изменяет Rails.application.assets.version(это ключ для вычисления хэша всех активов), в то время как он вычисляет эту версию с абсолютным путем рельсов в MD5, и это причина, по которой один и тот же путь машины получит тот же составленные активы.

Решение: добавьте конфигурацию по умолчанию в application.rb: config.angular_templates.inside_paths = ['app/assets']

1 ответ

Какова ваша команда прекомпиляции? Вы должны добавить свою целевую среду явно, как показано ниже.

rake assets:precompile RAILS_ENV=production 
Другие вопросы по тегам