Express js静态相对父目录
目前,我正在通过expressJs服务静态文件遇到一些小问题。
我的目录结构如下:
- 上市
- CSS
- LIB
- SRC
- 意见
- 家
- 的index.html
- server.js
在我的index.html
文件中,我用前导斜杠将我的所有资产前缀。
我的静态设置如下: app.use(express.static(path.resolve(__dirname + '../' + 'public')));
但由于某种原因,我的静态文件没有得到服务。
我在想,这是一个跨域调用或者什么…我目前正在使用cloud9 IDE,可能这与它有什么关系吗?
__dirname
没有结尾斜杠,所以__dirname + '../'
导致DIRNAME../
(这是无效的)。
相反,使用:
__dirname + '/../public' ^ extra slash
您应该使用path.join而不是手动连接path组件。 它使用path.normalize ,解决.
和..
,处理多个或结尾的斜杠,并为您的平台使用适当的文件分隔符(请参阅: path.sep )。
例如,
var path = require('path'); var express = require('express'); var app = express(); app.use(express.static(path.join(__dirname, '../public')));