Express托管静态文件

1,405 阅读1分钟

为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 Express 中的 express.static 内置中间件函数。

此函数特征如下:

express.static(root, [options]) // root参数指定用于从其提供静态资产的根目录。 有关options参数的更多信息,请参见express.static。

例如:通过如下代码就可以将 public 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了:

app.use(express.static('public'))

这样就可以访问 public 目录中的所有文件(注意该访问路径不带public),如:

http://localhost:4000/images/20151025110807_HR8Qa.jpeg

如果要使用多个静态资源目录,请多次调用 express.static 中间件函数:

app.use(express.static('public'))
app.use(express.static('files'))

如果需要带前缀地址,就可以这么做:

app.use('/static', express.static('public'))

这样就可以通过带有 /static 前缀地址来访问 public 目录中的文件,如:

http://localhost:4000/static/images/20151025110807_HR8Qa.jpeg

以上提供给express.static函数的路径是相对于启动节点进程的目录的。 如果从另一个目录运行Express App,则使用要提供服务的目录的绝对路径更为安全:

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