[asp.net] ASP.NET MVC에서 favicon.ico 제공

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

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

  • RegisterRoutes 메소드 의 맨 처음 에 항목 추가 :

    routes.IgnoreRoute("favicon.ico");
  • 내 응용 프로그램의 루트에 favicon.ico 배치 (또한 내 도메인의 루트가 됨).

두 가지 질문이 있습니다.

  • 내 응용 프로그램의 루트가 아닌 다른 곳에 favicon.ico를 넣을 방법이 없습니까? 그것은 같은 수준에서 바로 거기에있는 구역질 예쁘다 ContentControllers.
  • 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 등으로, ICO를 IE로 제공합니다.

<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에서 즐겨 찾기 아이콘을 가져 오려고하지만 IgnoreRoute를 사용해야합니다.

2) 브라우저가 다른 디렉토리에서 파비콘을 요청하면 404 오류가 발생하고 마스터 페이지의 답변 1에 링크 태그가 있으면 브라우저에 원하는 파비콘이 표시됩니다.


답변

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

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


답변

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


답변

ico 파일을 리턴하는 제어기를 작성하고 해당 제어기를 가리 키도록 /favicon.ico 경로를 등록 할 수도 있습니다.


답변

app.UseStaticFiles();startup.cs-> 에 추가 하기 만하면 public void Configure(IApplicationBuilder app, IHostingEnvironment env)됩니다.

ASP.net 코어는 정적 파일을 얻는 훌륭한 방법을 제공합니다. wwwroot 폴더를 사용하고 있습니다. ASP.NET Core에서 정적 파일을 읽으십시오 .

를 사용 <Link />하는 것은 좋은 생각이 아닙니다. favicon.ico의 각 HTML 또는 CSS에 링크 태그를 추가하는 이유는 무엇입니까?