문제

ASP.NET MVC에서 favicon.ico를 제공하는 방법에 대한 최종/최고의 권장 사항은 무엇입니까?

나는 현재 다음을 수행하고 있습니다.

  • 항목 추가 처음에 내 reidgroutes 메소드의 :

    routes.IgnoreRoute("favicon.ico");
    
  • 내 응용 프로그램의 루트에 favicon.ico를 배치합니다 (또한 내 도메인의 근본이 될 것입니다).

두 가지 질문이 있습니다.

  • favicon.ico를 내 응용 프로그램의 루트 이외의 다른 곳에 두는 방법이 없습니까? 그것은 바로 거기에있는 것과 같은 수준에 꽤 멍청합니다. Content 그리고 Controllers.
  • 이거야 IgnoreRoute("favicon.ico") 충분한 진술 - 또는 논의 된대로 다음을 수행해야합니다. Phil Haack의 블로그 게시물. 나는 루트 이외의 다른 디렉토리에서 favicon.ico에 대한 요청을 본 적이 없습니다.

    routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
    
도움이 되었습니까?

해결책

도메인의 루트에 favicon.ico를 배치하는 것은 IE5, IIRC에만 영향을 미칩니다. 보다 최신 브라우저의 경우 다른 디렉토리를 가리 키도록 링크 태그를 포함시킬 수 있어야합니다.

<link rel="SHORTCUT ICON" href="http://www.mydomain.com/content/favicon.ico"/>

IE 이외의 브라우저에 비 ICO 파일을 사용할 수도 있습니다.이 조건문을 사용하여 PNG에서 FF 등을 제공하고 IE에 대한 ICO를 사용할 수 있습니다.

<link rel="icon" type="image/png" href="http://www.mydomain.com/content/favicon.png" />
<!--[if IE]>
<link rel="shortcut icon" href="http://www.mydomain.com/content/favicon.ico" type="image/vnd.microsoft.icon" />
<![endif]-->

다른 팁

Chris의 답변에 동의하지만 이것이 특정 ASP.NET MVC 질문이라는 것을 보는 것이 Razor 구문 중 하나를 사용하는 것이 좋습니다.

<link rel="icon" href="@Url.Content("~/content/favicon.ico")"/>

또는 전통적으로

<link rel="icon" href="<%= Url.Content("~/content/favicon.ico") %>"/>

보다는

<link rel="icon" href="http://www.mydomain.com/content/favicon.ico"/>

1) 원하는 위치에 파비콘을 넣고이 태그를 페이지 헤드에 추가 할 수 있습니다.

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

일부 브라우저는 기본적으로 /favicon.ico에서 favicon을 얻으려고하므로 무시력을 사용해야합니다.

2) 브라우저가 다른 디렉토리에서 Favicon을 요청하는 경우 404 오류가 발생하며 마스터 페이지의 답변 1에 링크 태그가있는 경우 브라우저는 원하는 Favicon을 얻습니다.

내 생각에는 favicon.ico 루트 폴더에 있어야합니다. 그것은 단지 거기에 속합니다.

다른 아이콘을 서버하려면 컨트롤에 넣으십시오. 당신은 그렇게 할 수 있습니다. 그렇지 않은 경우 - 루트 폴더에 두십시오.

위의 어느 것도 나를 위해 일하지 않았습니다. 나는 마침내 favicon.ico를 myicon.ico로 이름을 바꾸어이 문제를 해결하고 머리에 참조했습니다. <link rel="icon" href="~/myicon.ico" type="image/x-icon" />

ICO 파일을 반환하는 컨트롤러를 만들고 해당 컨트롤러를 가리 키도록 Route /favicon.ico를 등록 할 수도 있습니다.

fav 아이콘 파일을 검색하는 경향이있는 favicon.ico 대신에 이것을 사용하십시오.

> <link rel="ICON" 
> href="@System.IO.Path.Combine(Request.PhysicalApplicationPath,
> "favicon.ico")" />

요청 된 경로를 사용하고 FAV 아이콘 파일과 결합하여 검색하는 정확한 주소를 얻으십시오.

이 사용을 사용하여 항상 application_error에서 제기되는 fav.icon 오류가 발생했습니다.

당신이해야 할 일은 추가하기 만하면됩니다 app.UseStaticFiles(); startup.cs->에서 public void Configure(IApplicationBuilder app, IHostingEnvironment env).

ASP.NET Core는 정적 파일을 얻는 훌륭한 방법을 제공합니다. WWWROOT 폴더를 사용하고 있습니다. 읽어주세요 ASP.NET CORE의 정적 파일.

사용 <Link /> 아주 좋은 생각이 아닙니다. 왜 누군가가 favicon.ico의 각 HTML 또는 cshtml에 링크 태그를 추가합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top