umi 的项目中如何修改 favicon
浏览器在解析html文件时会将类型为icon的link标签引用的图片作为网页的favicon,也就是网站标签左上角的小图标。
有两种方法加入link标签:
1. 在document.ejs中使用link标签
<head> <link rel="icon" type="image/x-icon" href="favicon.ico" /> </head>
umi 约定如果存在 src/document.ejs 文件,则将其作为html模板。
2. 在umi配置文件里配置links
links: [{ rel: 'icon', href: '/img/favicon.ico' }]
但是!注意坑:umi是不会去编译html文件的,也就是说这里的href如果写的是开发时的图片路径,umi是不会主动去找到图片并给你打包进输出文件里的。
那么像这样在html里引用的静态资源,不像js里的资源可以被webpack解析打包输出,我们要怎么搞到输出文件里去呢?
此时就要用到umi的约定:“public 目录:此目录下所有文件会被 copy 到输出路径”。新建一个 /public目录把图标放进去,可以在输出文件的根目录里访问到。
比如网页放在localhost:8000上,这里的href="favicon.ico" 就会往 localhost:8000/favicon.ico 发送Get资源请求,即项目输出文件的根目录。换句话说,如果你的资源放在/public/img下,那么href应该写"img/favicon.ico"
实际的项目中。
document.ejs 在 pages内
<head> <link rel="icon" type="image/x-icon" href="favicon.ico" /> </head>
在public 文件中 放 favicon.ico
漫思