문제

APP_DATA 폴더에있는 ASP 이미지 컨트롤로 이미지 URL 속성을 설정하면 이미지가 페이지 디자인보기에 표시되지만 브라우저에는 표시되지 않습니다.

<form id="form1" runat="server">
<div>
    <asp:Image ID="Image1" runat="server" ImageUrl="~/App_Data/p3.jpg" />
</div>
</form>

간단한 것 같지만 이미지를 보여주지 않습니다.

도움이 되었습니까?

해결책

그만큼 App_Data 폴더는 데이터베이스 파일 등과 같은 데이터를 위해 예약 된 특수 폴더입니다. 아니다 웹에서 모든 내용을 렌더링하십시오. 이것은 디자인에 의한 것이며 의도적이며 (내가 아는 한) 변경할 수 없습니다.

당신의 이미지는 확실히 속에 속하지 않습니다 App_Data 하위 폴더 - a에 넣습니다 /images 폴더 또는 더 적합한 것.

다른 팁

이미지는 절대 저장해서는 안됩니다 App_Data 폴더. .MDB 데이터베이스 파일 등과 같이 사용자에게 직접 제공해서는 안되는 파일 용으로 예약되어 있습니다.

나는 만들 것이다 /Resources 또는 /Resources/Images 사이트의 루트에있는 폴더.

나는 동의하지 않는다. APP_DATA 폴더에 이미지를 숨기고 자신의 HTTP 핸들러를 만들 때 이미지를 보장하고 표시하기 전에 이미지에 저작권 텍스트 등을 추가 할 수 있습니다.

나는 Highres 사진을 가지고있을 때 이것을한다. 엄청난!

좋아, 불가능한 일을 할 시간 ... App_Data 폴더에서 직접 이미지를로드 할 수는 없지만 APP_DATA 폴더에서 이미지 파일을 읽고 클라이언트로 다시 보낼 자신의 HTTP 핸들러를 작성할 수 있습니다. 그것은 해결 방법이지만 일반적으로 데이터는 응용 프로그램 만 읽을 수있는 데이터를위한 것입니다. 핸들러가 데이터를 읽어도 해당 이미지를 반환 할 수 있습니다.

그러나 그것은 나쁜 연습이고 당신이 나를 위해 일한다면, 당신은 즉시 해고 될 것입니다 !!!

때에 따라 다르지! ;)

이미지를 저장하는 데 좋은 이유가 있습니다 App_Data. 사용자가 파일이나 로고를 업로드 할 수있는 상황에서는 이러한 파일을 보호하고 다른 사용자가 액세스하거나 공개적으로 액세스 할 수 없습니다.

가장 중요한 것은 서버/배포 인스턴스마다 다른 파일을 갖는 유일한 방법입니다.

앱을 배포 할 때 배포 구성에서 "APP_DATA에서 파일 제외"를 활성화하여 서버 인스턴스 당 사용자가 업로드 한 이러한 파일을 보호 할 수 있습니다.

URL로 이러한 파일에 액세스하려면 다운로드 핸들러를 사용하십시오.

도움이 되었기를 바랍니다.

APP_DATA 폴더의 내용은 직접 제공 할 수는 없습니다.
직접 액세스가 불가능하고 간접적 인 권장은 권장되지 않습니다. 의도적입니다.

그러나 가상 경로를 추가하면이 작업을 수행 할 수 있습니다. 이것 좀 봐 의문


Top Three 답변이 귀하의 목적에 도움이된다고 생각합니다.
리소스 폴더에 이미지 저장 글로벌 또는 로컬 이들도 특수 폴더이며 컨텐츠에 프로그램에 액세스 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top