2011-03-17 2 views
2

내 프로젝트는 .sln과 그 아래에 폴더 라이브러리가있는 레이아웃으로 레이아웃되어 있습니다. 모든 프로젝트에는 클래스 라이브러리 프로젝트가 있습니다. 또한 해당 폴더 목록에서 웹 사이트 (웹 사이트라고 함)가 포함 된 폴더입니다.asp.net 디버깅 문제 - 웹 사이트 경로

나는 이미지, 마스터 페이지 등을위한 다양한 폴더가 있습니다.

마스터 페이지에서 이미지를로드하고 있으므로 다음과 같이 참조합니다. src = "/ images/logo_blue.jpg"그 그림이있는 곳입니다.

그러나 디버거에서 코드를 실행하면 마스터 페이지가 CSS 또는 js 파일이나 이미지를 포착하지 않습니다. IE의 웹 사이트 경로가 주어 졌기 때문에 로 : 바로 이미지가 있어야 할 곳에 X를 클릭하면

http://localhost:61249/Website/Default.aspx

하고, 그것은 http://localhost:61249/images/logo_blue.jpg 찾고있다 "하지만 이미지가 http://localhost:61249/website/images/logo_blue.jpg 에서 찾을 수 있습니다 것으로 보인다"

왜 가짜를 삽입하는 디버거가 있습니다. "websit 전자 "경로에? 실제 웹 사이트의 루트가 웹 사이트 폴더가 아닌 이유는 webste의 루트가 실제로 솔루션 폴더 인 것처럼 보입니다.

난 그냥 아주 명백한 일을하고 상상 .... 웹 탭에서 웹 프로젝트의 속성 페이지에서

답변

2

확인합니다. 가상 경로 설정이 있어야합니다. 가상 경로는 "/"로만 설정하면됩니다.

+0

많은 많은 감사합니다 !! – Manicguitarist

0

경로 앞에 '~'을 추가해야 할 수도 있습니다 (src = "~/images/logo_blue.jpg"). 이렇게하면 페이지가 사이트 루트와 관련된이 경로를 찾게됩니다. 마스터 페이지는 다른 폴더에있는 자식에 의해 소비 될 때 참조를 잃어 버리는 것으로 악명이 높습니다.

정확하게 참조되는 위치에 따라 ResolveClientUrl 호출시 URL을 래핑해야 할 수도 있습니다. 구문 뒤에 코드에서 은 다음과 같습니다

src=Page.ResolveClientUrl("~/images/logo_blue.jpg") 

당신이 같을 것이다 표준 HTML 이미지 태그를 사용하는 경우 :

<img src='<%= Page.ResolveClientUrl("~/images/logo_blue.jpg") %>' /> 

또는 당신이 ASP를 이미지 컨트롤을 사용하는 경우 마크 업을

<asp:Image ID="Image1" runat="server" ImageUrl='<%# Page.ResolveClientUrl("~/images/logo_blue.jpg") %>' /> 

이 경우이 경우 URL을 확인하기 위해 컨트롤의 databind 메서드를 어느 시점에서 호출해야합니다.