web-dev-qa-db-ja.com

node.js / expressでEJSを使用して画像を表示する

Node.js/express/ejsでセットアップしようとしています。 ejsは実際のHTMLではないため、単純な画像を表示するだけでは苦労しています。誰かが私を正しい方向に向けることができますか?

ディレクトリ構造は次のとおりです。

  • myApp/server.js
  • myApp/views/index.ejs
  • myApp/logo.jpg

今私は持っています

// index.ejs
<img src = "../logo.jpg" />

私はこれを間違った方法で行っていますか?ありがとう。

14
gone

Expressの静的ファイルは、staticミドルウェアで指定されたディレクトリ内に配置する必要があります。これは通常./public/

たとえば、server.js次のようなものがあるかもしれません:

app.use( express.static( "public" ) );

このフォルダ内の各ファイルにはルートURLからアクセスできるため、これは機能します。

<img src="logo.jpg" />
23
gustavohenke

App.jsにapp.use( express.static( "public" ) );を割り当てる必要があります。次に、ルートとして/を忘れないでください。

<img src="/images/logo.jpg" />

画像フォルダはパブリックフォルダにある必要があります。

- public/
  - images/
    - logo.png
- app.js
5
Cho Kri

私のjsファイルはここにありました_c:/blog/index.js_および画像ファイル_c:/blog/views/image.js_。そして、このコードをjsファイルに入力しました

app.use( express.static( "views" ) );

次にCSSに追加されたプロパティ

_body {
background-image: url("./image.jpg"); }
_