如何更改Angular CLI图标


140

如何更改由Angular CLI设置的默认图标?

我尝试了很多事情,但是即使我删除了该图标(src文件夹中的favicon.ico),它也始终将Angular徽标显示为favicon。它仍然显示,我不知道从哪里加载。

我已用另一个图标替换了该图标,但它仍显示Angular徽标:

<link rel="icon" type="image/x-icon" href="favicon.ico">


使用不同的端口运行应用程序可以解决该问题。例如:ng s --port 4201
Sajad

我有同样的问题。就我而言,本地一切都很好,但是当我部署到服务器时,我收到500个内部服务器错误...
Ziggler

我读了所有的答案,这对我有一点帮助,但老实说,对于一个如此基本的需求,它应该不那么复杂:只是将映像复制到的路径,然后可能是配置文件,然后重新启动。“刷新”答案无济于事。
pdem

Favicon就是在angular.json专门配置一个静态文件,只是让默认并在这里看到它是如何工作的:stackoverflow.com/questions/40424907/...
pdem

Answers:


158

制作一个具有相同名称(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">


2
谢谢你Sukhveer。这非常完美,只需在angular-cli.json文件中添加图标后重启应用程序即可。
阿杰·西凡

1
这应该被接受的答案!什么都没做,但是这个把戏起作用了!谢谢Sukhveer Singh!
朱尼亚·蒙大纳州

我还必须更改png路径<link rel="icon" type="image/png" href="./favicon.png" />
Dude Pascalou

1
感谢您的9
号角

56

由于您已favicon.ico物理替换了文件,因此某处必须存在缓存问题。您的浏览器中有一个缓存。按Ctrl+ 强制将其冲洗掉F5

如果仍显示默认图标,请尝试使用具有干净缓存的其他浏览器(即,您尚未使用该浏览器访问该页面)。

清除缓存快捷键:来源

Windows
IE:Ctrl+ R;火狐:Ctrl+ Shift+ R; Chrome:Ctrl+ RCtrl+ F5Shift+ F5

Mac
Safari:+ R; 火狐/ Chrome浏览器:+ Shift+ R


1
谢谢,男人立即工作-赢得了CTRL F5-与avialcon一起在Angular 6中工作,其索引与index.html在同一目录中,而这一行在index.html中... <link rel =“ icon” type =“ image / x-icon” href =“ favicon.ico”>
danday74 '18

快捷键很棒!
Gerardo Bautista,

36

导航到文件终于为我解决了这个问题。以我为例http:// localhost:4200 / favicon.ico

我曾尝试刷新,停止并重新启动ng serve,但是“空缓存和硬重载”没有起作用。


1
那是对我有用的唯一答案。感谢那!
伊凡(Ivan)

2
导航到网站图标后,我重新加载了主页,然后按ctrl + f5(chrome)-这样就可以了。干杯。
blueprintchris

1
这是对我唯一有效的方法。难以置信的!
Yaniv Eliav

28

确保浏览器下载了新版本的收藏夹图标,并且未使用缓存的版本,您可以在收藏夹网址中添加虚拟参数:

<link rel="icon" type="image/x-icon" href="favicon.ico?any=param">

为我工作感谢
Venky559 '18

谢谢...?any = param帮助删除缓存的先前图标
ArunDhwaj IIITH

这是唯一对我有用的东西。不是ctrl + f5,也不是所有其他猜测的答案,这是可行的!
saferJo

14

我们可以更改有角度的CLI图标图标。我们必须将图标文件放在“资产”文件夹中,并在index.html中提供该路径。

<link rel="icon" type="image/x-icon" href="./assets/images/favicon.png"> 对我来说有用。


是的,这里没有其他方法适合我,但是将其粘贴到资产文件夹中的效果很好。干杯。
scohe001

10

我也为此感到挣扎,以为我在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 。

如果这对您不起作用,那么该帖子中还有很多其他好的建议。


1
这还将删除所有现有书签页面的图标,直到您下次访问该页面为止。这虽然对我有用。
David B

9

对于Angular 6,将favicon.png大小32x32放入资产文件夹中,然后在中更改路径index.html。然后,

<link rel="icon" type="image/x-icon" href="./assets/favicon.png">

的确:我必须将我的放在资产文件夹中,并在index.html和angular.json文件中更改路径。
G. Delvigne,

5

制作一个带有.ico扩展名的图标图像,然后将其复制并替换为src文件夹中的默认favicon文件。

index.html

<link rel="icon" type="image/x-icon" href="favicon.ico" />

angular.json

**"assets": [
          "src/favicon.ico",
          "src/assets"
        ],**

救生员!thx
koo9

4

将favicon.ico移至您的资产,然后移至img文件夹,然后仅更改标题中的图标链接标记。当根本不显示favicon时,它对我有帮助。


在Chrome和Firefox中,这不是缓存问题。我移动了ICO文件,Chrome和Firefox均立即更新。
Steve11235 '17

我更新了我的favicon.ico文件,此文件无法加载。我做到了(移至资产和更新的链接)并正常工作。
大卫,

4

在浏览器窗口中按Ctrl+F5


嗨,安德烈,很好的答案,但您可能要解释一下,这会刷新缓存,否则只是一个“魔术”答案。
汤姆

1
这个答案与yuri的答案(16年11月26日在19:12 回答)完全相同,减去了非常有用的解释。
robinCTS

4

为任何Web项目重新加载FAVICON:

右键单击该图标,然后单击“重新加载”。每次都能工作。


1
将我的头撞到墙上20分钟后,这是唯一有效的解决方案。谢谢!!
wooldridgetm

2

对于将来的读者,如果您遇到这种情况,则您的浏览器希望使用旧的缓存图标。

跟着这些步骤:

  1. 按住CTRL键,然后在浏览器中单击“刷新”按钮。
  2. 按住Shift键,然后在浏览器中单击“刷新”按钮。

固定。


2

请按照以下步骤更改应用程序图标:

  1. 在项目中添加.ico文件。
  2. 转到angular.json,然后在“项目”->“建筑师”->“构建”->“选项”->“资产”中,为您的图标文件输入一个条目。请参阅favicon.ico的现有条目以了解操作方法。
  3. 转到index.html并更新图标文件的路径。例如,

  4. 重新启动服务器。

  5. 硬刷新浏览器,一切顺利。

1

我玩了一段时间。事实证明,网站图标显然是由称为@scematics的节点模块处理的(至少在Angular5中如此)。

您可以在以下文件夹中更改收藏夹图标:

[YourProjectName]\node_modules\@schematics\angular\application\files\__sourcedir__

在该文件夹中应该有一个favicon.ico,即已加载的文件。我很确定这并不适用于所有人,但对我来说确实可行。

希望这会有所帮助。编码愉快!:D


1

对于那些需要动态添加图标的人,这里是我使用应用程序初始化程序所做的事情:

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文件并添加即可。网站启动前将添加收藏夹图标


1
<link rel="icon" type="image/x-icon" href="#">

添加图标来源并重新启动应用程序,它将更改。


1

我尝试了许多这些解决方案,但未成功。适用于我的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)中。您不需要在资产文件夹中保存它,因为您没有引用它。

  • 确保您的图标没有损坏(如果通过窗口资源管理器(也称为没有损坏的窗口图标)查看,则您的图标应该可读)

  • 必须为32 x 32尺寸

0

确保当您使用图标图像时,它不是可操纵的扩展名,就像您下载png图像然后将其扩展名从手动更改png为一样icon。在这种情况下,您的图像将被破坏。和浏览器不明白。

我犯了这个错误,但是使用原始图标图像后,它开始工作。


0

1.检查index.html文件上的链接标记,使其看起来像这样。

<link red="icon" type="image/x-icon" href="favicon.ico">

2.在/ src目录中检查favicon.ico的文件名。

3.使用ng服务并刷新应用程序重新运行Angular。

4.如果未显示(或看起来像是在缓冲旧的favicon.ico文件)。尝试再次刷新favicon的路径以加载favicon.ico文件(例如,刷新yourdomain.com/favicon.ico)


0

我有同样的问题。

如果您使用的是Mac,则除了重新启动应用程序(当然还要更改index.html中的路径)之外,还需要清空缓存(Option+ + E)并重新加载页面。


0
  1. 删除现有的favicon.ico
  2. 将新图标添加到src文件夹中,名称为“ favico.ico”
  3. 清除浏览器中的缓存。

该图标不仅反映了浏览器缓存,还反映了它。有时尝试重新启动应用程序


0

以下步骤对我有用。

  1. 删除默认的“ favicon.ico”文件,换一个新文件,命名为“ _favicon.ico”。

    注意:::不要保留默认名称,因为它会缓存在浏览器中,并且很难用新图标覆盖。

  2. 使用新的链接标签更新index.html,即

     <link rel="icon" type="image/x-icon" href="_favicon.ico" /> 
    
  3. 使用新的图标名称即“ _favicon.ico”更新.angular-cli.json。

  4. 构建并启动您的应用,然后进行强制刷新Ctrl+ F5


0

就像:

  1. 将图标或png添加到与favicon相同的目录中
  2. 编辑.angular-cli.json,在资产中删除favicon.ico将您的文件放到位
  3. 编辑index.html,搜索收藏夹图标并将其放置到位
  4. 再次发球

完成了


0
<link rel="icon" type="image/x-icon" href="assets/liana.jpg">

"assets": [

        "assets/sorry.jpg",
        "assets/liana.jpg"

  ],

这对我有用。


<link rel =“ icon” type =“ image / x-icon” href =“ assets / liana.jpg”>以及
Ester Vardan

0

就我而言,问题是我的尺寸与普通尺寸不同。我有48x48 px它所期待的,32x32 px而我的扩展名是png,所以我不得不将其更改为ico


0

对我来说真正有效的方法是将我的收藏夹放到素材资源文件夹中,并自动出现在浏览器中。

  1. 将位置更改为src文件夹内的assets文件夹。
  2. 像这样更改index.html <link rel="icon" type="image/x-icon" href="assets/favicon.png">

0

好的,在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,图标就在那里。也显示在我的实时服务器上。


-1

删除chromes favicon缓存并重新启动Mac上的浏览器对我来说很有用。

rm ~/Library/Application\ Support/Google/Chrome/Default/Favicons

-1

我遇到了同样的问题,并通过此处所述的方法强制刷新来解决了这个问题:

要刷新您网站的收藏夹图标,您可以强制浏览器使用链接标签和文件名上的查询字符串下载新版本。这在生产环境中特别有用,可确保您的用户获得更新。

<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.