この場合、アセットパイプラインを非難するのは間違っているようです。それはあなたのアプリケーションをスピードアップするためにそこにあるオプションのものです。フォールバックする低速のアプリケーションに満足している場合、これはconfig / environment/production.rbで簡単に構成できます。
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
ただし、これを行うことはお勧めしません。
これは例外エラーが発生する必要がある場合ではないと主張することもできますが...実際には、存在しないイメージをプルしていることになります。
したがって、コードで処理する必要のあるエラーがあります。IMOは、オブジェクト指向コードの方が、巧妙ではなく大規模に失敗する方が優れています。この失敗は、コードの修正に使用できる優れた失敗メッセージを作成します。
エラーを処理できるヘルパーを介したルーティングを提案します。この答えの変形であるこのような何か
def safe_image_tag(source, options = {})
begin
count = 0
source ||= "blank-profile-md.png"
image_tag(source, options)
rescue Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError
count += 1
source = "blank-profile-md.png"
retry if count < 2
end
end
この場合、これによりデフォルトの画像が復元されてレンダリングされます。