MVC2의 이미지 및 robots.txt에 "IController를 구현하지 않음"오류가 발생합니다.
.aspx 파일을 제외한 모든 파일에 대해 웹 서버에서 이상한 오류가 발생합니다.
여기에 예가 있습니다. '/robots.txt'를 .jpg 이름이나 .gif 등으로 바꾸면 아이디어를 얻을 수 있습니다.
'/robots.txt'경로에 대한 컨트롤러를 찾을 수 없거나 IController를 구현하지 않습니다.
라우팅을 설정 한 방법과 관련이 있다고 확신하지만 정확히 무엇을해야하는지 잘 모르겠습니다.
또한 이것이 차이가 있다면 이것은 MVC와 WebForms가 혼합 된 사이트입니다.
라우팅에서 robots.txt 및 모든 aspx 페이지를 무시할 수 있습니다.
routes.IgnoreRoute("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});
routes.IgnoreRoute("{*robotstxt}", new {robotstxt=@"(.*/)?robots.txt(/.*)?"});
파비콘도 무시할 수 있습니다.
routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
경로를 제외하도록 정규식을 조정할 수 있습니다.
소스 에서 Haacked .
위에 주어진 무시 경로는 나를 위해 작동하지 않았지만 비슷한 경로를 찾았습니다.
routes.IgnoreRoute("{*staticfile}", new { staticfile = @".*\.(css|js|gif|jpg)(/.*)?" });
이 오류는 해당 영역의 뷰 내부에서 Html.Action 도우미를 사용하는 경우에도 발생할 수 있습니다. 이 도우미는 특별히 지정하지 않는 한 항상 해당 영역을 접두어로 사용합니다. 예 :
@Html.Action("Main", "Navigation", new { area = string.Empty })
나는 또 다른 해결책을 찾았 습니다 ... 나는 그것을 사용할 것이라고 생각하지 않지만 여기에 대답을 보여줄 가치가 있습니다.
다음은 (이론적으로) '.'가있는 컨트롤러를 찾는 것을 무시해야합니다. 그것에.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" }, // Parameter defaults
new { controller = @"[^\.]*" } // Parameter contraints.
);
아직 가지고 있습니까?
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
... Global.asax.cs에 있습니까?
MVC는 기본적으로 거기에 배치하고이를 처리해야합니다.
그렇다면 문제는 MVC와 WebForms를 혼합하는 방법 일 수 있습니다.
존재하지 않는 리소스를 요청할 때이 오류가 발생했습니다.
특히, 사용자 지정 IE CSS 파일을 요청했습니다.
<!--[if lt IE 8]>@Styles.Render("~/Content/ie7.css")<![endif]-->
(이것은 IE에서 해석되는 조건 주석입니다 )
그러나 실제 리소스는 ~ / Content / ie / ie7.css에 존재했습니다.
따라서 라우팅을 수정하지 않고 리소스의 올바른 URL을 사용하여 오류를 해결했습니다.
'IT이야기' 카테고리의 다른 글
pdf에서 jpeg로 페이지 추출 (0) | 2021.03.24 |
---|---|
.NET의 파일 확장자 및 MIME 유형 (0) | 2021.03.23 |
Scala의 '::'연산자에 대하여 (0) | 2021.03.23 |
Android : 모달 대화 상자 또는 유사한 모달 동작을 얻는 방법 (0) | 2021.03.23 |
전체 프로젝트 / 폴더에서 단어를 재귀적으로 검색 (0) | 2021.03.23 |