ASP.NET MVC에서 favicon.ico 서비스
-
20-08-2019 - |
문제
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에 링크 태그를 추가합니까?