非常教程

Express参考手册

开始 | Getting started

5.在Express中提供静态文件 | 5. Serving static files in Express

要提供静态文件(如图像,CSS文件和JavaScript文件),请使用express.staticExpress中的内置中间件功能。

函数签名是:

express.static(root, [options])

root参数指定要从中为静态资产提供服务的根目录。有关options参数的更多信息,请参阅express.static。

例如,使用以下代码在名为public的目录中提供图像,CSS文件和JavaScript文件:

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

现在,您可以加载public目录中的文件:

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

Express查找相对于静态目录的文件,因此静态目录的名称不是URL的一部分。

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

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

Express按照您使用express.static中间件功能设置静态目录的顺序查找文件。

注:为获得最佳结果,请使用反向代理缓存来提高服务静态资产的性能。

要为express.static函数提供的文件创建虚拟路径前缀(路径实际上不存在于文件系统中),请为静态目录指定一个装载路径,如下所示:

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

现在,您可以从/static路径前缀中加载目录public中的文件。

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

但是,您提供给express.static函数的路径是相对于启动node过程的目录。如果您从其他目录运行快速应用程序,则使用您想要提供的目录的绝对路径更安全:

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

有关该serve-static函数及其选项的更多详细信息,请参阅serve-static。

Express

Express 是一个简洁而灵活的 node.js Web 应用框架, 提供一系列强大特性帮助你创建各种 Web 应用。Express 不对 node.js 已有的特性进行二次抽象,只是在它之上扩展了 Web 应用所需的功能。丰富的 HTTP 工具以及来自 Connect 框架的中间件随取随用,创建强健、友好的 API 变得快速又简单。

主页 http://expressjs.com/
源码 https://github.com/strongloop/express/
发布版本 4.16.1

Express目录

1.开始 | Getting started
2.指南 | Guide
3.高级主题 | Advanced topics
4.API