Craft CMS のアセットフィールドでファビコン(.ico)をアップロードできな場合の対処方法

Craft CMS のアセットフィールドで .ico の拡張子のファイルをアップロードできるようにする方法をご紹介します。

Craft CMS Logo

Craft CMS のアセットフィールドでは、デフォルトの状態では .ico の拡張子のファイルはアップロードできません。

Asset icon error min

アップロードできるファイルの種類は general.phpallowedFileExtensions で定義できるのですが、この初期値が、

'7z, aiff, asf, avi, bmp, csv, doc, docx, fla, flv, gif, gz, gzip, htm, html, jp2, jpeg, jpg, jpx, js, mid, mov, mp3, mp4, m4a, m4v, mpc, mpeg, mpg, ods, odt, ogg, ogv, pdf, png, potx, pps, ppsm, ppsx, ppt, pptm, pptx, ppz, pxd, qt, ram, rar, rm, rmi, rmvb, rtf, sdc, sitd, svg, swf, sxc, sxw, tar, tgz, tif, tiff, txt, vob, vsd, wav, webm, wma, wmv, xls, xlsx, zip'

となっているために .ico がアップロードできないのです。

したがって、 .ico をアップロードできるようにするには、この初期値に ico を追加して general.php に定義してあげます。

なお、このように allowedFileExtensions の初期値に拡張子を追加したいときは extraAllowedFileExtensions に追加したい拡張子を配列でセットしてあげれば、 allowedFileExtensionsにマージされるようになっています。

'extraAllowedFileExtensions' => ['ico'],

もちろんこれを機会に、上記の値を必要なものだけに絞って設定してしまってもいいでしょう。

なお、ここで ico を追加したとしても、フィールドの設定で、 Restrict allowed file types? にしてあるとダメなので注意しましょう。

Asset ico min
Published 2019-01-18
Updated 2023-03-02