簡體   English   中英

express.js靜態無法識別已定義的“公用”文件夾

[英]express.js static not recognising defined 'public' folder

我有以下目錄設置;

**app** **controllers** *index.server.controller.js* **models** **routes** *index.server.routes.js* **views** *index.ejs* **config** **env** *config.js* *express.js* **public** **css** **img** *logo.jpg* **js** *server.js* *package.json*

在express.js內部,我使用以下命令加載靜態目錄;

//app.use(express.static(__dirname + '\\..\\public\\') - also attempted
app.use(express.static('./public'));

然后,我要提供index.ejs,其中包含以下代碼段;

<img src="img/logo.jpg" alt="Logo"/>

但是,這總是導致在圖像本身上返回404。

C:\\nodejs>node horizontal/server Localhost running on port 3000 GET / 304 13.763 ms - - GET /img/logo.jpg 404 4.372 ms - 25

如上所示,我嘗試提供嚴格的__dirname路徑(就像我必須設置視圖的路徑一樣,如下所示)-並且還嘗試僅插入public / img / logo.jpg才能看到它服役。

視圖,因為它起作用;

app.set('views', __dirname+'\\\\..\\\\\\\\app\\\\views\\\\'); app.set('view engine', 'ejs');

是否有人對為什么express無法看到公用文件夾或從中提供靜態內容有任何想法?

請注意,我的開發環境是Windows8.1。

您應該使用路徑模塊來執行此操作。

var path = require('path');

應用目錄如下所示

在此處輸入圖片說明

您只需要像這樣訪問公用文件夾:

app.use(express.static(path.join(__dirname, 'public')));

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM