Результат прекомпиляции конвейера активов рабочей среды 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