似乎 mina 没有检测到资产更改,因此当更改仅发生在包含的 gem(Rails 引擎)中时会跳过预编译。
到目前为止,我们通过检查部署块来选择性地强制预编译来解决这个疏忽
deploy do
if hash.extras.include?("compile")
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
并运行
mina deploy[compile]
是否需要进行任何配置以将 mina 暴露给 gems 中的资产更改,或者这是尚未开发的功能?
如果我理解正确,您需要将一些设置传递给部署部分。
但你总是可以以常规方式做到这一点:
set :force_precompile, -> { true }
并在稍后使用此设置,如上文所述,例如:
deploy do
if force_precompile
invoke :'rails:assets_precompile:force'
else
invoke :'rails:assets_precompile'
end
end
有道理吗?
Codewise - 没有。 不需要 set 指令,因为hash.extras
包含“编译”。
功能方面,是的。 通常我们会执行标准的mina deploy
,它会在检测到资产更改时进行“智能”预编译。 不幸的是,这种检测似乎不适用于 gems 中的资产。
您可以使用环境变量来强制资产编译
mina deploy force_assets=true
请注意正确的 env 变量是: force_asset_precompile=true
最有用的评论
请注意正确的 env 变量是:
force_asset_precompile=true