2015-10-12 18 views
25

Ich habe ein Problem mit diesem Favicon, das ich für einen lokalen Server PHP-Projekt generiert habe. Es funktioniert gut bei den meisten Browsern (Google Chrome, Mozilla Firefox und Opera), aber auf Microsoft Edge funktioniert es nicht (Es zeigt die Standard-Registerkarte Favicon).Favicon funktioniert nicht auf Edge

Ich habe versucht, viele Lösungen für dieses Problem wie Löschen des Caches, mit Bildformat (. Png) anstelle von Symbol (.ico), aber nichts schien zu funktionieren.

Hier sind die Codezeilen, die ich im HTML-Kopf aufgenommen haben:

<link rel="icon" href="<?php echo Yii::$app->request->baseUrl; ?>/favicon.ico" type="image/x-icon" /> 
<link rel="shortcut icon" href="<?php echo Yii::$app->request->baseUrl; ?>/favicon.ico" type="image/x-icon" /> 

Jeder hatte das gleiche Problem und es gelöst?

+0

Haben Sie den aktuellen HTML-Code mit "View Source" auf Edge überprüft? Zweimal "favicon.ico" zu deklarieren kann zwar "sicherer" klingen, aber vielleicht ist dies die Ursache des Problems. –

+0

Ich habe es überprüft, aber nichts Seltsames habe ich gesehen. Und ich habe versucht, nur das Verknüpfungssymbol zu verwenden, es hat auch nicht funktioniert. –

+0

Wie ist das Seitenverhältnis Ihres Symbols? – Mibit

Antwort

1

Versuchen Sie zunächst die übliche Methode zum Löschen: Cache löschen, Verlauf und Cookies.

Wenn das nicht funktioniert, versuchen Sie:

<html>  
<head> 
<title> Your Title</title> 
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> 
</head> 
<body> Your content </body> 
</html> 

Stellen Sie sicher, favicon.ico in der als HTML-Datei gleichen Ordner ist.

Wenn es immer noch nicht funktioniert, könnte dies ein Problem mit MS Edge sein. Überprüfen Sie die Website unten: https://www.wix.com/support/html5/ugc/b4b4a8f2-217d-4e25-aa55-00c19f5d5fc4/1a8ee7cd-3092-42e8-9078-dc528f8bfc87

0

Vielleicht ist es ein Echo Kapselung Problem. Ich meine, dass href würde "Anfrage-> BaseUrl;" als Wert

versuchen Für mich

<?php 
     echo '<link rel="icon" href="'.Yii::$app->request->baseUrl.'/favicon.ico" type="image/x-icon" />'; 
    ?> 
+0

Vielen Dank für Ihre Teilnahme. Ich habe alles versucht, was ihr geschrieben habt, aber es hat mein Problem nicht gelöst. Ich brauche eine glaubwürdigere Quelle, eine umfassendere Antwort. – ahPo

41

das Problem war, dass auf localhost es nie in Rand gearbeitet. Egal was ich gemacht habe. In Chrome und Firefox war es immer in Ordnung. Die Lösung bestand darin, dass es nach der Bereitstellung auf dem Webserver nur in Edge funktionierte.

-1

Versuchen Sie, ein 512x512 im PNG-Format zu erstellen. Arbeitete für mich.

3

Sie sollten den Namen Ihrer favicon.ico-Datei ändern. Wie "myFavicon.ico".

Sie sollten auch ? am Ende Ihres Link, fügen Sie wie folgt:

<link rel="icon" href="<?php echo Yii::$app->request->baseUrl; ?>/favicon.ico?" type="image/x-icon" /> 
<link rel="shortcut icon" href="<?php echo Yii::$app->request->baseUrl; ?>/favicon.ico?" type="image/x-icon" /> 

Auch haben Sie den Cache vor dem Test auffrischen? Wenn nicht, setzen Sie den Cache zurück oder Sie sehen Ihre Änderungen nicht.

Schließlich könnte es auch Ihr Symbol sein. Versuchen Sie es mit einem favicon generator.

+2

Das Ändern des Dateinamens des Favicons funktionierte für mich. Seltsam. – TranslucentCloud

3

für mich i hinzugefügt id = "Favicon"

die ganze Linie sieht aus wie

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

+0

Ich fürchte, das scheint auch nicht zu funktionieren. Es schien, nachdem ich das Symbol von einer externen Quelle geladen (und zwischengespeichert) und dann das Verknüpfungs-Tag geändert hatte, um die ID einzuschließen. Wenn ich denselben Fix auf einem anderen System, auf dem Edge ausgeführt wird, versuchte, würde es einfach nicht funktionieren. –

6

ich mit dem Edge hatte das gleiche Problem. Ich habe viele Workarounds ausprobiert, aber nur das Verschieben des Icons vom lokalen auf den WWW-Server war erfolgreich. Wenn Ihr Server lokal ist (auf localhost), versuchen Sie, die Symboldatei auf einen globalen Server zu verschieben.

<link rel="shortcut icon" href="http://example.com/favicon.ico" type="image/x-icon" /> 
3

Es gibt 2 Probleme in Edge. Bei der Bereitstellung auf einem Webserver werden beide vermieden (deshalb wurde nach der Bereitstellung auf einem Webserver mit der Arbeit in anderen Antworten begonnen). Sie können es jedoch auch auf localhost arbeiten lassen.

1. Unvollständige Header zurückgegeben vom Server

Es sieht aus wie Edge der Web-Server Cache-Control-Header für das Favicon zurückkehren muss.

z. dieser Wert funktioniert:

Cache-Control: public, max-age=2592000 

Die üblichen Webserver senden diesen Header wahrscheinlich automatisch. Wenn Sie jedoch eine benutzerdefinierte Lösung haben, müssen Sie sie manuell implementieren. Z.B. in WCF:

WebOperationContext.Current.OutgoingResponse.Headers.Add("Cache-Control", "public, max-age=2592000"); 

2. Rand kann wegen einiger Sicherheitseinstellungen von Windows nicht localhost Zugriff

standardmäßig apps Windows Store nicht Loopback-Schnittstelle verwenden können. Dies scheint sich auf das Favicon-Laden auszuwirken, das mit einem anderen Mittel als die Webseite geladen wird (also, selbst wenn die Webseite funktioniert, funktioniert Favicon nicht). Um Loopback-Edge, führen diese in Powershell als Administrator zu aktivieren:

CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe" 

Edge-Neustart ist nicht erforderlich - nach Aktualisierung der Seite (F5), sollte das Favicon geladen werden.

Loopback wieder zu deaktivieren:

CheckNetIsolation LoopbackExempt –d –n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe" 

Aber das Favicon in Edge-Cache gespeichert werden, so wird es noch sichtbar sein.

Weitere Informationen

Wenn Sie HTTPS verwenden, es sieht aus wie das Zertifikat gültig sein muss (trusted) für das Favicon zu zeigen.

0

Hinzufügen Cache-Control: öffentliche, max-age = 14400 auf den http-Header für mich gearbeitet. Überprüft mit IE, Edge und Chrome unter Windows 10 mit einem ESP8266-12E, auf dem Arduino als Webserver in einem lokalen Netzwerk ausgeführt wird. (Habe noch keine Apple oder Android-spezifische Unterstützung ausprobiert).FWIW - Hier ist ein Teil der html von der Stammseite von meinem Server:

<!DOCTYPE html> 
<html> 
<head> 
<title>Favicon Test</title> 
<link rel="shortcut icon" href=\"/faviconS.ico\" type="image/x-icon"> 
<link id="favicon\" rel="icon" href="/favicon.ico" type="image/x-icon"> 
<link id="favicon-16x16" rel="icon" type=\"image/png" href="/favicon-16x16.png" sizes="16x16"> 
<link id="favicon-32x32" rel="icon" type=\"image/png" href="/favicon-32x32.png" sizes="32x32"> 
<link id="favicon-96x96" rel="icon" type=\"image/png" href="/favicon-96x96.png" sizes="96x96"> 
</head> 
<body> 
... 
</body> 
</html> 

und hier ist ein Esp8266/Arduino Code-Schnipsel für die Erstellung des HTTP-Header in der Antwort und sendet die Symboldaten, die zuvor gespeichert als eine Datei SPIFFS mit .

... 
f = SPIFFS.open("/favicon.ico", "r"); 
if (!f) { 
    Serial.println("file open failed"); 
} else { 
    Serial.println("favicon.ico open succeeded..."); 
    client.println("HTTP/1.1 200 OK"); 
    client.print("Content-Length:"); 
    client.println(String(f.size())); 
    client.println("Content-Type:image/x-icon"); 
    client.println("Cache-Control: public, max-age=14400"); 
    client.println(); // blank line indicates end of header 
    while (f.available()) { // send the binary for the icon 
    byte b = f.read(); 
    client.write(b); 
    } 
f.close(); 
... 
0

Lösung für EDGE

Wenn Sie nicht bereits ein Favicon haben, können Sie sie here oder here erzeugen.

Ich habe meine 32x32 png zu imgur.com Es funktioniert während der lokalen Prüfung nur, wenn das Favicon/PNG-Bild hochgeladen ! Extern gehostet wird!, wie imgur.com.

Im head der Seite, die ich das Favicon wie folgt festgelegt:

<link href="https://i.imgur.com/xxxx32x32.png" rel="shortcut icon" type="image/x-icon"> 

Es gibt keine Namenskonvention, können Sie die Favicon nennen, was Sie xyz.png mögen, aber ich denke, es 32x32 sein!

Ich habe auch einen Host-Eintrag, der auf meinen Web-App in IIS Setup wie:

127.0.0.1 www.your-app.com 

Schritte:Schließen Sie den Browser, 30 Sekunden warten und es wieder öffnen. Geben Sie Ihre URL entweder www.your-app.com oder localhost/yourApp oder localhost:xxxx/yourApp ein. Probieren Sie beides aus!

Stellen Sie sicher, dass Sie den Cache löschen. Drücke F5. Wahrscheinlich müssen Sie diese Schritte zwei- bis dreimal wiederholen.

Es wird einige Zeit dauern, bis Edge es erfasst.

Dies funktioniert in IIS. Danach habe ich es mit IIS Express getestet und es funktioniert auch dort. Es ist egal. Was zählt, ist Sie müssen das Favicon extern hosten.

enter image description here Zum Beispiel zeigt IE11 Favicons überhaupt nicht, egal welche Seite ich besuche. Also, vergessen Sie IE11 ;-)

Verwandte Themen