如何更改由Angular CLI设置的默认图标?
我尝试了很多事情,但是即使我删除了该图标(src文件夹中的favicon.ico),它也始终将Angular徽标显示为favicon。它仍然显示,我不知道从哪里加载。
我已用另一个图标替换了该图标,但它仍显示Angular徽标:
<link rel="icon" type="image/x-icon" href="favicon.ico">
ng s --port 4201
如何更改由Angular CLI设置的默认图标?
我尝试了很多事情,但是即使我删除了该图标(src文件夹中的favicon.ico),它也始终将Angular徽标显示为favicon。它仍然显示,我不知道从哪里加载。
我已用另一个图标替换了该图标,但它仍显示Angular徽标:
<link rel="icon" type="image/x-icon" href="favicon.ico">
ng s --port 4201
Answers:
制作一个具有相同名称(favicon.png
)的png图像,然后在以下文件中更改名称:
index.html
:
<link rel="icon" type="image/x-icon" href="favicon.png" />
angular-cli.json
:
"assets": [
"assets",
"favicon.png"
],
而且您将永远不会再看到角度默认图标。
尺寸应为32x32,如果超出此尺寸,则不会显示。
注意:这不适用于Angular 9
对于angular 9,您必须将favicon放入资产中,然后给出如下路径
<link rel="icon" type="image/x-icon" href="assets/favicon.png">
angular-cli.json
文件中添加图标后重启应用程序即可。
<link rel="icon" type="image/png" href="./favicon.png" />
由于您已favicon.ico
物理替换了文件,因此某处必须存在缓存问题。您的浏览器中有一个缓存。按Ctrl+ 强制将其冲洗掉F5。
如果仍显示默认图标,请尝试使用具有干净缓存的其他浏览器(即,您尚未使用该浏览器访问该页面)。
清除缓存快捷键:(来源)
Windows
IE:Ctrl+ R;火狐:Ctrl+ Shift+ R; Chrome:Ctrl+ R或Ctrl+ F5或Shift+ F5。
Mac
Safari:⌘+ R; 火狐/ Chrome浏览器:⌘+ Shift+ R。
导航到文件终于为我解决了这个问题。以我为例:http:// localhost:4200 / favicon.ico
我曾尝试刷新,停止并重新启动ng serve
,但是“空缓存和硬重载”没有起作用。
确保浏览器下载了新版本的收藏夹图标,并且未使用缓存的版本,您可以在收藏夹网址中添加虚拟参数:
<link rel="icon" type="image/x-icon" href="favicon.ico?any=param">
我也为此感到挣扎,以为我在Angular上做错了事,但是最终我的问题是Chrome缓存了该图标。标准的“ Empty Cache and Hard Reload”(空高速缓存和硬重载)或重新启动浏览器均不适用于我,但是这篇文章为我指明了正确的方向。
这特别适合我:
如果在Windows上使用chrome,则
(exit chrome from taskbar
)转到C:\Users\your_username\AppData\Local\Google\Chrome\User Data\Default
并删除Favicons-journal文件,然后Favicons(从任务栏,kill all instances
)重新启动chrome 。
如果这对您不起作用,那么该帖子中还有很多其他好的建议。
对于Angular 6,将favicon.png
大小32x32
放入资产文件夹中,然后在中更改路径index.html
。然后,
<link rel="icon" type="image/x-icon" href="./assets/favicon.png">
制作一个带有.ico扩展名的图标图像,然后将其复制并替换为src文件夹中的默认favicon文件。
index.html
:
<link rel="icon" type="image/x-icon" href="favicon.ico" />
angular.json
:
**"assets": [
"src/favicon.ico",
"src/assets"
],**
将favicon.ico移至您的资产,然后移至img文件夹,然后仅更改标题中的图标链接标记。当根本不显示favicon时,它对我有帮助。
我玩了一段时间。事实证明,网站图标显然是由称为@scematics的节点模块处理的(至少在Angular5中如此)。
您可以在以下文件夹中更改收藏夹图标:
[YourProjectName]\node_modules\@schematics\angular\application\files\__sourcedir__
在该文件夹中应该有一个favicon.ico,即已加载的文件。我很确定这并不适用于所有人,但对我来说确实可行。
希望这会有所帮助。编码愉快!:D
对于那些需要动态添加图标的人,这里是我使用应用程序初始化程序所做的事情:
import { APP_INITIALIZER, FactoryProvider } from '@angular/core'
export function faviconInitFactory () {
return () => {
const link: any = document.querySelector(`link[rel*='icon']`) || document.createElement('link')
link.type = 'image/x-icon'
link.rel = 'shortcut icon'
if (someExpression) {
link.href = 'url' || 'base64'
} else {
link.href = 'url' || 'base64'
}
document.getElementsByTagName('head')[ 0 ].appendChild(link)
}
}
export const FAVICON_INIT_PROVIDER: FactoryProvider = {
provide: APP_INITIALIZER,
multi: true,
useFactory: faviconInitFactory,
deps: []
}
只需删除src /下的fav.ico文件并添加即可。网站启动前将添加收藏夹图标
我尝试了许多这些解决方案,但未成功。适用于我的angular 5应用程序的应用程序如下:
index.html:注释掉您的链接标记
<!-- <link rel="icon" type="image/png" href="src/assets/images/favicon.ico"> -->
.angular-cli.json:将项目类型保留为“ .ico”
"assets": [
"assets",
"favicon.ico"
],
在您的项目文件夹结构中,将src内部的favicon.ico放在:(C:\ Dev \ EPS \ src)中。您不需要在资产文件夹中保存它,因为您没有引用它。
确保您的图标没有损坏(如果通过窗口资源管理器(也称为没有损坏的窗口图标)查看,则您的图标应该可读)
确保当您使用图标图像时,它不是可操纵的扩展名,就像您下载png
图像然后将其扩展名从手动更改png
为一样icon
。在这种情况下,您的图像将被破坏。和浏览器不明白。
我犯了这个错误,但是使用原始图标图像后,它开始工作。
以下步骤对我有用。
删除默认的“ favicon.ico”文件,换一个新文件,命名为“ _favicon.ico”。
注意:::不要保留默认名称,因为它会缓存在浏览器中,并且很难用新图标覆盖。
使用新的链接标签更新index.html,即
<link rel="icon" type="image/x-icon" href="_favicon.ico" />
使用新的图标名称即“ _favicon.ico”更新.angular-cli.json。
构建并启动您的应用,然后进行强制刷新Ctrl+ F5。
<link rel="icon" type="image/x-icon" href="assets/liana.jpg">
"assets": [
"assets/sorry.jpg",
"assets/liana.jpg"
],
这对我有用。
好的,在2020年的9.1.12。我不明白为什么这个过程如此困难。我几乎跟踪了上面的所有帖子,但没有一个适合我。
这是什么DID的工作:完全删除index.html中的favicon引用。这是完全相反的直觉,但可以。您无需将其放入assets
文件夹中。我尝试了所有这些方法,但不幸的是,这些建议都没有奏效。
index.html
<!-- <link rel="icon" type="image/x-icon" href="favicon.ico"> DELETE THIS -->
angular.json
"assets": [
"src/favicon.ico",
"src/assets"
],
当我运行时ng build --prod
,图标就在那里。也显示在我的实时服务器上。
我通过创建自己的.ico文件并创建资产文件夹并将文件放在那里来解决了该问题。然后更改Index.html中的链接href