programing

mvc: favicon.ico도 컨트롤러를 찾습니까?

mytipbox 2023. 6. 7. 23:54
반응형

mvc: favicon.ico도 컨트롤러를 찾습니까?

오류가 발생합니다.

"'/favicon.ico' 경로의 컨트롤러를 찾을 수 없거나 IC 컨트롤러를 구현하지 않습니다."

그리고 나서 저는 생각했습니다: 프레임워크가 컨트롤러를 인스턴스화해야 하는 파일을 어떻게 알 수 있을까요? 왜냐하면 스크립트, CSS 및 기타 파일에도 동일한 것이 적용되기 때문입니다.

(그런 생각을 해본 적이 없는데, 지금 페이비콘이 불평을 하고 있어요, 궁금했어요...)

하지만 오류로 돌아가서, 왜 그런 일이 일어날까요?

global.asax에 추가합니다.

routes.IgnoreRoute("favicon.ico");

제약 조건을 사용하여 무시 경로를 지정할 수도 있습니다.

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

정답은 정답입니다.

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

그러나 최신 버전의 MVC의 경우에는 RouteConfig.cs 의 RegisterRoutes 메서드의 맨 위에 이를 추가해야 합니다(따라서 경로 앞 어딘가).MapRoute(...)를 호출합니다.

VS 웹 서버에서 이 정보를 얻을 수 있습니다.그렇죠?

IIS(기본적으로)는 이미지(.ico, .jpg, .gif, etcera)에 대한 요청을 처리하기 때문에 IIS에서는 이러한 요청을 받을 수 없으며 따라서 해당 요청이 앱에 도달하지 못합니다.

흥미롭게도 아래에서 "내 코드만 활성화" 옵션을 선택한 경우에만 이 오류가 발생했습니다.tools->options->debugging선택을 취소하는 순간 더 이상 이 오류가 발생하지 않습니다.

그러나 오류는 여전히 백그라운드에서 발생하지만 내부적으로 즉시 발견되는 것으로 보이므로 가장 좋은 해결책은 다른 답변이 제시하는 것처럼 무시하기 위해 global.asax로 코드화하는 것입니다.

언급URL : https://stackoverflow.com/questions/4624190/mvc-does-the-favicon-ico-also-look-for-a-controller

반응형