Es scheint, dass mina keine Asset-Änderungen erkennt und daher die Vorkompilierung überspringt, wenn die Änderungen nur in enthaltenen Gems (Rails-Engines) aufgetreten sind.
Bisher lösen wir dieses Versehen, indem wir die Vorkompilierung selektiv mit einem Check-in-Deploy-Block erzwingen
deploy do
if hash.extras.include?("compile")
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
Und läuft
mina deploy[compile]
Muss eine Konfiguration vorgenommen werden, um Mina Asset-Änderungen in Edelsteinen auszusetzen, oder muss dies noch entwickelt werden?
Wenn ich Sie richtig verstanden habe, müssen Sie einige Einstellungen an den Bereitstellungsabschnitt übergeben.
aber du könntest es immer ganz normal machen:
set :force_precompile, -> { true }
und verwenden Sie diese Einstellung später wie oben beschrieben, wie zum Beispiel:
deploy do
if force_precompile
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
Macht es Sinn?
Codeweise - nein. Die set-Direktive ist nicht erforderlich, da hash.extras
"compile" enthält.
Funktional, ja. Normalerweise führen wir standardmäßige mina deploy
, die die "intelligente" Vorkompilierung durchführen, wenn Asset-Änderungen erkannt werden. Leider scheint diese Erkennung für Assets in Gems nicht zu funktionieren.
Sie können env-Variablen verwenden, um Asset-Pekompilierungen zu erzwingen
mina deploy force_assets=true
Nur ein Hinweis, dass die richtige Umgebungsvariable ist: force_asset_precompile=true
Hilfreichster Kommentar
Nur ein Hinweis, dass die richtige Umgebungsvariable ist:
force_asset_precompile=true