我目前正在通过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.normalize,它解析.
并..
处理多个或尾部斜杠,并为您的平台使用适当的文件分隔符(请参阅:path.sep).
例如,
var path = require('path'); var express = require('express'); var app = express(); app.use(express.static(path.join(__dirname, '../public')));