2016-10-20 4 views
0

내 제어 권한이없는 이유로 UNC 경로를 사용하는 디렉토리 구조를 기반으로 웹 페이지 (갤러리보기의 일종)에 일련의 이미지를 렌더링해야했습니다. 내가 작업 할 때 상대 경로를 사용하고 있지만 UNC 규칙을 사용하여 사이트를 배포 할 것임을 알 수 있습니다.ASP.NET이 이미지를 표시 할 수 없음

다음 부분보기를 만들어 이미지를 렌더링했습니다. 나중에 포맷 할 수 있습니다.

@model System.Collections.Generic.List<string> 

@foreach (var image in Model) 
{ 
    <div id="ptImage"> 
     <img src="@image" alt="@Path.GetFileName(image)"/> 
    </div> 
} 

위의 @image은 렌더링해야 할 이미지의 절대 경로를 나타냅니다.

페이지의보기 소스에 표시되는 경로는 내가 기대해야 할 것으로 생각하고 이미지의 위치를 ​​로컬에서 정의하는 것입니다. 상대 경로를 통해 이미지에 액세스 할 때 다른 사람들이 기대하는 바는 무엇입니까?

<div id="gImg"> 
    <img src="C:\Projects\Test_Site\Site_1\ES3\ES3_0.bmp" alt="ES3_0.bmp" /> 
</div> 
<div id="gImg"> 
    <img src=" C:\Projects\Test_Site\Site_2\ES4\ES4_0.jpg" alt="ES4_0.jpg" /> 
</div> 

부분보기가로드 될 때 나는 이미지 자체가 아닌 이미지의 대체 텍스트 만 볼 수 있습니다. 는 IIS 익스프레스 로그에보기는 다음 나에게 말한다 :

http://localhost:1348/TestGallery/ 404 0 2 6 This resource404 0 2 x 리소스가 발견되지 않는 것처럼 보입니다 것을 이해하는 것이 저를지도한다.

실제로 파일 경로 인 IIS에서 자원을 찾기위한 유효한 입력으로 기대되는 것은 무엇입니까? 추가 검색을 수행하기 위해 질문 문구를 어떻게 쓰는지 모르겠습니다.

+0

나는 그것이 권한 문제라고 생각합니다. 과 같은 이미지 태그에서 리얼 티브 경로를 사용해보세요. –

답변

0

img 태그의 src 경로는 디스크상의 실제 파일 위치가 아닌 웹 사이트 URL이어야합니다. 웹 앱은 해당 위치에서 이미지를 가져 오기 위해 URL을 번역해야합니다.

한 가지 가능한 솔루션 :

  • 가에서 사용자 지정 항목을 확인 동적으로 특정 URL 경로에있는 모든 항목을 치료하는 응용 프로그램의 RouteConfig.cs. (이 예에서는 별도의 컨트롤러입니다.) 임의의 쿼리 경로를 처리하는 코드에서

    routes.MapRoute(
        name: "Images", 
        url: "image/{*querypath}", 
        new { controller = "Image", action = "Retrieve" } 
        ); 
    
  • , 당신이 찾고있는 UNC 경로 (위 querypath에서) 상대 URL을 번역하고 이미지를 제공 .

    return File(UncRootPath + querypath, "image/png"); 
    
관련 문제