次の関数は、ローカルでテストした場合、/assets/images/icons/... ディレクトリからアクセスされた画像を正しく表示します。
function formatShapes(item) {
if (!item.id) return item.text;
return "<img height='20px' src='/assets/icons/shape_" + item.id.toLowerCase() + ".png'/> " + item.text;
}
$("select#q_shape_eq").select2({
formatResult: formatShapes,
formatSelection: formatShapes,
escapeMarkup: function(m) { return m; }
});
/icons/ ディレクトリ内の画像は次のとおりです。
- shape_low.png
- shape_medium.png
- shape_high.png
これらは、select2ドロップダウンで正しくバインドされitem.id
ます。しかし、コードを本番環境 (Heroku) にデプロイするとすぐに、select2-rails ドロップダウンに画像が表示されません。なぜかというと、制作中の画像パスが「/assets/logo-200a00a193ed5e297bb09ddd96afb953.png」のようになっているようです。本番サーバーでその動的パスを参照するにはどうすればよいですか?
ありがとう