曾几何时,只需要一个favicon.ico
就可以满足网站的图标需求,随着移动端开发的繁荣,一个小小的图标也需要适配各种设备,虽然从牌子上区分主要就是苹果和安卓,但是一考虑到屏幕分辨率,真特么头大:
- android-chrome-144×144.png
- android-chrome-192×192.png
- android-chrome-36×36.png
- android-chrome-48×48.png
- android-chrome-72×72.png
- android-chrome-96×96.png
- apple-touch-icon-114×114.png
- apple-touch-icon-120×120.png
- apple-touch-icon-144×144.png
- apple-touch-icon-152×152.png
- apple-touch-icon-180×180.png
- apple-touch-icon-57×57.png
- apple-touch-icon-60×60.png
- apple-touch-icon-72×72.png
- apple-touch-icon-76×76.png
- apple-touch-icon.png
- apple-touch-icon-precomposed.png
- browserconfig.xml
- favicon-16×16.png
- favicon-194×194.png
- favicon-32×32.png
- favicon-96×96.png
- favicon.ico
- manifest.json
- mstile-144×144.png
- mstile-150×150.png
- mstile-310×150.png
- mstile-310×310.png
- mstile-70×70.png
- safari-pinned-tab.svg
像这种生成各种图标的活儿,挺适合让机器来干:只需要给出一个最大分辨率的图,机器便能返回一个包含各种图标的资源包。我们只需要把这些图放到特定某一位置然后配置下nginx
,万事大吉。根据这个想法,试着Google了一下,果然有个利器,而且是在线免费生成:Favicon Generator. For real.。
通过Favicon Generator生成的图标资源,不建议放在项目根目录,而是集中放到某处,比如:/assets/favicons/
,方便管理,通过配置nginx
达到同样效果:
location ~ ^/(android-chrome|apple-touch-icon|browserconfig|favicon|manifest|mstile|safari-pinned-tab)(.*)\.(.*)$ {
root /var/www/example.com/assets/favicons;
}
这样,我的目的达到了:既能一键生成各种繁琐的图标,又清理了项目根目录,可谓一箭双雕。人生苦短,重复性的活儿交给机器,我们负责创造和下达指令。