2016-08-18 3 views
0

여러 사이트가있는 웹 서버에 게시되는 ASP.NET 웹 사이트가 있습니다. 예를 들어 :다중 사이트 웹 서버 및 로컬 호스트에서 상대 경로 지정

www.example.com/SiteA 또는 www.example.com/SiteB

플러스 내가 예를 들어, 이미지의 경로를 지정하면 나는 또한 localhost:12345

에서 예를 들어, 게시하기 전에 로컬 사이트를 테스트 : 실행할 때 /Images/exampleImage.gif이 작동 Images 폴더가 루트 디렉토리에 있기 때문에 사이트를 로컬로 가져올 수 있습니다. 이 경우 정확한 경로는 localhost:12345/Images/exampleImage.gif입니다.

그러나 웹 서버에 게시 할 때 (예 : www.example.com/SiteA) 동일한 경로가 www.example.com/Images/exampleImage.gif으로 가고 이미지가 올바르게 표시되지 않습니다.

또한 ASP 컨트롤과 마찬가지로 HTML 컨트롤에만 사용되며 물결표 (~/Images/exampleImage.gif)를 사용할 수 있으며 사이트의 루트 디렉터리 인 www.example.com/SiteA/Images/exampleImage.gif을 알 수 있습니다.

필자의 경우 HTML 컨트롤을 사용하는 것이 좋습니다.

편집 : 그 이유는 내가 사업부가 숨겨져있는 경우를 기반으로 HTML을 IMG 컨트롤의 이미지를 변경 자바 스크립트가 있기 때문에 :

function Toggle(commId, imageId) { 
    var div = document.getElementById(commId); 
    var img = document.getElementById(imageId); 
    if (div.style.display == 'none') { 
     div.style.display = 'inline'; 
     img.src = "/Images/minus.gif"; 
    } else { 
     div.style.display = 'none'; 
     img.src = "/Images/plus.gif"; 
    } 
} 

가 어떻게 이미지 폴더의 경로를 얻을 수를, 서버의 각 사이트에 대한 폴더가있을 때 사이트의 루트에 상대적으로, 그리고 여전히 localhost에서 작업하고 있습니까?

답변

0

난 당신이 자바 스크립트에 포함 된 C# 코드를 넣을 수 있습니다 알고 있지만, 단지 수행하여 그것을 생각하지 않았다 :

function Toggle(commId, imageId) { 
    var div = document.getElementById(commId); 
    var img = document.getElementById(imageId); 
    if (div.style.display == 'none') { 
     div.style.display = 'inline'; 
     img.src = "<%= ResolveUrl("~/Images/minus.gif") %>"; 
    } else { 
     div.style.display = 'none'; 
     img.src = "<%= ResolveUrl("~/Images/plus.gif") %>"; 
    } 
} 

ResolveUrl 방법은 경로 값에 대한 물결표 (~)를 타고 알 수 있기 때문에 서버의 웹 사이트 루트 디렉토리.

img html 컨트롤 (및 기타 특성/컨트롤)의 src 특성에서 직접 같은 ResolveUrl 메서드를 사용하여 포함 된 코드를 사용할 수도 있습니다.이 같은 문제는 HTML 컨트롤 만 있으면됩니다.

0

~/또는 이미지가 포함 된 서버에서 "/ Images"라는 새 가상 디렉터리를 게시하려면 코드를 사용해야합니다.