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

私はファイルシステムのパスからファイルを読み込むことができないことを意味すると思います。画像ファイルを含めて正しく表示されるものはすべてWebサーバー上で提供され、URI/URLを使用してそのファイルに含める必要がありますノート;私が間違っていれば私を修正してください。ありがとう。 – habedi

関連する問題