2016-06-17 45 views
0

我有以下dir安裝程序;express.js靜態不識別定義的'公共'文件夾

**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路徑(如我曾與建立路徑的意見辦,如下圖所示) - 和也試圖只是將公共/ IMG/logo.jpg爲了看到它得到服務。

視圖,因爲它的工作;

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

有沒有人有任何想法,爲什麼表達的是沒有看到公共文件夾或服務從它的靜態內容?

請注意,我的Dev env是Windows8.1。

回答

0

你應該使用路徑模塊來做到這一點。

var path = require('path'); 

隨着應用程序目錄中查找類似下面

enter image description here

你只像這樣訪問公用文件夾:

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

希望幫助!

+0

您好 - 感謝您的建議,但不幸的是,仍然沒有骰子。 404仍然按照摩根歸還。 – Eoghan

+0

是與應用程序文件夾相同的級別還是內部?因爲我的建議工作公衆需要在應用程序文件夾內,但從你上面的描述,對我來說,他們似乎在同一水平 –

相關問題