我有以下目录设置;
**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');
有人想知道为什么表示不查看公用文件夹或提供静态内容吗?
请注意,我的Dev env是Windows8.1。