繁体   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