favicon.ico는 없지만 IE는 항상 요청합니다.
브라우저가 내 사이트에서 파비콘을 요청하지 못하게 할 수 있습니까? HTML 헤더에 META-TAG가 있습니까?
favicon.ico는 없지만 IE는 항상 요청합니다.
브라우저가 내 사이트에서 파비콘을 요청하지 못하게 할 수 있습니까? HTML 헤더에 META-TAG가 있습니까?
답변:
먼저 웹 페이지에 파비콘이있는 것이 좋습니다 (일반적으로).
그러나 항상 바람직하지는 않으며 개발자가 추가 페이로드를 피할 수있는 방법이 필요합니다. 예를 들어 IFRAME은 즐겨 찾기 아이콘을 표시하지 않고 요청합니다. 최악의 경우, Chrome 및 Android에서 IFRAME은 3 가지 즐겨 찾기 아이콘 요청을 생성합니다.
"GET /favicon.ico HTTP/1.1" 404 183
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197
"GET /apple-touch-icon.png HTTP/1.1" 404 189
다음은 데이터 URI를 사용하며 가짜 파비콘 요청을 피하는 데 사용할 수 있습니다.
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
참조를 위해 여기를보십시오 :
Chrome 버그 / 동작은 다음 버전에서 수정 될 것입니다.
다음은 투표를위한 버그 제출입니다.
업데이트 1 :
주석 (jpic)에서 Firefox> = 25는 더 이상 위의 구문을 좋아하지 않는 것 같습니다. Firefox 27에서 테스트했는데 여전히 Webkit / Chrome에서 작동하는 동안 작동하지 않습니다.
최신 브라우저를 모두 다루는 새로운 브라우저가 여기 있습니다. Safari, Chrome 및 Firefox를 테스트했습니다.
<link rel="icon" href="data:;base64,=">
"rel"속성 값에서 "바로 가기"이름을 생략했습니다. 이전 IE에만 해당하며 IE <8 버전은 dataURI를 좋아하지 않기 때문입니다. IE8에서는 테스트되지 않았습니다.
업데이트 2 :
HTML5에 대해 유효성을 검사하기 위해 문서가 필요한 경우 대신 다음을 사용하십시오.
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
하면 문제가 해결되는 것 같습니다.
data:image/png;base64,iVBORw0KGgo=
브라우저에서 열어서 favicon.ico
일명으로 저장할 수 있습니다 . PNG 파일을 비우고 웹 사이트 루트에 저장하십시오. 권리?
<head>
HTML 파일 섹션에 다음 줄을 추가 하십시오.
<link rel="icon" href="data:,">
이 솔루션의 특징 :
href="#"
)reserves space
인가요?
나는 이것을 보았다 (나는 그것을 테스트하거나 개인적으로 사용하지 않았다):
<link rel="shortcut icon" href="#" />
비슷한 경험이 있습니까?
편집하다:
방금 위의 스 니펫을 테스트하고 강제로 완전히 새로 고쳤을 때 Fiddler에서 즐겨 찾기 아이콘 요청이 없었습니다. IE8 (IE7 표준으로 Compat 모드) 및 FF 3.6에 대해 테스트했습니다.
href
동적 (캐시되지 않은) 페이지가 두 번 요청되지 않도록하기 위해 이미로드 한 정적 (캐싱 된) 리소스 (예 : CSS 또는 스크립트 파일)에 대한 링크가 있습니다. href="#"
기술적으로 현재 웹 페이지를 가리 키기 때문에 안전 해야합니다.
당신은 할 수 없습니다. 가능한 한 해당 이미지를 작게 만들고 나중에 캐시 무효화 헤더 ( Expires
, Cache-Control
)를 설정하기 만하면됩니다. 여기 무슨 야후! favicon.ico 요청에 대해 말해야 합니다.
.htaccess 또는 서버 지시문을 사용하여 favicon.ico에 대한 액세스를 거부 할 수 있지만 서버가 액세스 거부 응답을 브라우저에 보내면 여전히 페이지 액세스 속도가 느려집니다.
사용자가 브라우저 캐시에 머 무르도록하여 사이트로 돌아올 때 favicon.ico를 요청하는 브라우저를 중지 할 수 있습니다.
먼저 작은 favicon.ico 이미지를 제공하십시오. 비어있을 수 있지만 가능한 한 작습니다. 200 바이트 미만의 흑백을 만들었습니다. 그런 다음 .htaccess 또는 서버 지시문을 사용하여 나중에 Expires 헤더 파일을 한 달 또는 두 달로 설정하십시오. 동일한 사용자가 사이트로 돌아 오면 브라우저 캐시에서로드되며 요청이 사이트로 이동하지 않습니다. 서버 로그에 더 이상 404가 없습니다.
완전한 Apache 서버 또는 가상 서버를 제어 할 수있는 경우 다음을 수행 할 수 있습니다.
서버 문서 루트가 / var / www / html이면 /etc/httpd/conf/httpd.conf에 추가하십시오.
Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
<Files favicon.ico>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</Files>
</Directory>
그런 다음 별칭을 지정하기 때문에 하나의 favicon.ico가 모든 가상 호스팅 사이트에서 작동합니다. 사용자가 방문한 후 한 달 동안 브라우저 캐시에서 가져옵니다.
.htaccess의 경우 작동하지 않는 것으로보고됩니다 (내가 확인하지 않음).
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"
매우 간단한 해결책은 아래 코드를에 넣는 것 .htaccess
입니다. 나는 같은 문제가 있었고 내 문제를 해결했다.
<IfModule mod_alias.c>
RedirectMatch 403 favicon.ico
</IfModule>
참조 : http://perishablepress.com/block-favicon-url-404-requests/
우리의 경험에서 favicon.ico의 요청에 따라 Apache가 넘어지면서 .htaccess 파일에 추가 헤더를 주석 처리했습니다.
예를 들어 헤더 설정 X-XSS-Protection "1; mode = block"
...하지만 사전에 a2enmod 헤더를 sudo하는 것을 잊었습니다. 전송되는 추가 헤더를 주석 처리하면 favicon.ico 문제가 해결되었습니다.
또한 개발을 위해 여러 개의 가상 호스트를 설정했으며 http : // localhost를 사용 하고 /favicon.ico를 가져올 때 500 내부 서버 오류 만 발생했습니다 . "curl -v http : //localhost/favicon.ico " 를 실행 하고 호스트 이름이 확인자 캐시에 있지 않거나 그 영향에 대해 경고를 받으면 문제가 발생할 수 있습니다.
가져 오지 않는 것만 큼 간단하거나 (근본 원인이 다르기 때문에 시도했지만 작동하지 않았습니다) 이상한 500 내부 서버 오류 메시지를 일으킬 수있는 apache2.conf 또는 .htaccess의 지시문을 찾으십시오.
우리는 아파치의 오류 로그에 아무 것도 유용하지 않았고 mod_headers를로드하는 것을 잊었을 때 여분의 헤더를 설정하는 문제를 해결할 때까지 아파치의 오류 로그에 유용한 것이 아무것도 없다는 것을 발견했습니다.
당신은 사용할 수 있습니다
<link rel="shortcut icon" href="http://localhost/" />
그렇게하면 실제로 서버에서 요청되지 않습니다.