2017-11-10 19 views
0

Zeppelin의 MD 인터프리터에서 작업하는 동안 로컬 파일 시스템에 저장된 이미지 파일을로드하고 표시 할 수 없습니다. HTTP 서버를 통해 동일한 이미지를 제공 할 때 올바르게 표시되지만 이미지의 절대 경로를 사용하면 올바르게 표시되지 않습니다. Apache Zeppelin의 Markdown 인터프리터에서 로컬 파일 시스템에 저장된 이미지를 표시하는 방법은 무엇입니까?

은! :

![Data Pyramid](http://localhost:8088/images/DIKW_Pyramid.svg.png)

을하고있다 그러나 올바른 경로가 /images/DIKW_Pyramid.svg.png를해야이! :

![Data Pyramid](/opt/images/DIKW_Pyramid.svg.png)

답변

0

표시되지 않습니다.

URL http://example.com/http://example.com 도메인의 / 경로에 대한 요청임을 기억하십시오. 즉, URL 루트는 서버 루트입니다.

서버는 서버 루트 외부의 호스트 시스템 파일 중 일부에 대한 액세스를 제공하지 않습니다. 이렇게하는 것은 심각한 보안 문제가 될 것입니다. 실제로 시스템의 서버 루트가 /opt 인 경우 서버가 /에 대한 요청을 수신하면 실제로는 로컬 파일 시스템에서 /opt/을 찾습니다. 따라서 서버가 /opt에 대한 요청을 받으면 /opt/opt (아마도) 존재하지 않는 것을 찾습니다. 해당 디렉토리가 호스트 시스템에 위치 할 수있는 위치와 상관없이 항상 서버 루트에서 URL 경로를 시작해야합니다.

+0

죄송 합니다만 여기에 오해의 소지가 있습니다.''/ opt/images/DIKW_Pyramid.svg.png'''는 로컬 컴퓨터의 파일 시스템에있는 절대적인 파일 경로이며 파일에 대한 URL이 아닙니다 웹 서버에서 제공됩니다. 나는 Github.com 맛을 낸 MD를 검사했고 파일 시스템의 상대 경로 나 절대 경로에서 이미지 파일을로드하여 표시 할 수있는 것 같습니다. – habedi

+0

네가 오해 한 것 같다. 모든 파일은 서버에서 제공해야합니다 (서버가 서버 구성의 파일 위치를 가리키고 있음). 아니면'file : //'프로토콜을 사용해야한다. 그러나 HTML이 서버에서 제공되는 경우 브라우저의 동일한 소스 정책을 위반하는 이미지와 'file : //'을 통해 링크 할 수 없으며 해당 정책을 사용하지 않으면 심각한 보안 위험이 발생할 수 있습니다. . HTML에 대해서도'file : //'을 사용할 수는 있지만, 서버를 전혀 사용하지 않을 것입니다. 이것은 아마도 당신이 원하는 것이 아닙니다. – Waylan

+0

파일 시스템 경로에서 파일을로드 할 수 없다는 뜻입니다. 이미지 파일을 포함하여 올바르게 표시되어야하는 모든 것이 웹 서버에서 제공되어야하며 URI/URL을 사용하여 해당 파일에 포함해야합니다. 수첩; 내가 틀렸다면 나를 바로 잡아주세요. 감사. – habedi