Express.js 应用程序的缓存控制和静态资源管理

Express.js 是一个基于 Node.js 平台的极简、灵活的 Web 应用程序框架,在前端开发中得到广泛应用。本文将介绍在 Express.js 应用程序中如何进行缓存控制和静态资源管理。

缓存控制

缓存是提高 Web 应用程序性能的一种重要方式。在 Express.js 应用程序中,可以使用 Cache-ControlExpires 头部来控制缓存。其中,Cache-Control 用于控制缓存策略,Expires 用于设定缓存到期时间。

Cache-Control

Cache-Control 头部控制着资源在客户端与服务器之间是否缓存。使用 cacheControl 函数,可以在应用程序中动态生成 Cache-Control 头部。例如,以下代码将动态生成一个缓存过期时间为 1 分钟的 Cache-Control 头部:

----- ------- - ------------------
----- --- - ---------

--------------- ----- ---- -- -
  ----- --------- - -- -- ----- - --
  ------------------------ -------- ----------------------
  --------------- --------
--

---------------- -- -- -
  ------------------- -- --------- -- ---- -------
--

Cache-Control 头部可以包含以下值:

  • public:表明响应可以被客户端和中间代理缓存
  • private:表明响应只能被客户端缓存,在代理服务器上不能缓存
  • no-cache:表明响应必须重新验证缓存之后才能使用,不能直接使用缓存
  • max-age:表明响应在多少秒内可以被缓存

Expires

Expires 头部是一个日期字符串,用于指定缓存到期时间。例如,以下代码将生成一个缓存到期时间为 1 分钟后的 Expires 头部:

----- ------- - ------------------
----- --- - ---------

--------------- ----- ---- -- -
  ----- --------- - -- -- ----- - --
  ----- --- - --- ------
  ------------------------------- - ----------
  ------------------ ------------------
  --------------- --------
--

---------------- -- -- -
  ------------------- -- --------- -- ---- -------
--

在实际开发中,建议同时使用 Cache-ControlExpires 头部来控制缓存。

静态资源管理

在 Express.js 应用程序中,可以使用 express.static 中间件来管理静态资源,例如图片、CSS 文件和 JavaScript 文件等。

基本用法

以下代码展示了如何使用 express.static 中间件来托管 public 目录中的静态文件:

----- ------- - ------------------
----- --- - ---------

---------------------------------

---------------- -- -- -
  ------------------- -- --------- -- ---- -------
--

在上述代码中,express.static 中间件将会在访问 http://localhost:3000 时,自动查找 public 目录下的静态文件。例如,如果在 public 目录下有名为 image.png 的文件,则可以通过 http://localhost:3000/image.png 来进行访问。

其他配置

express.static 中间件还支持以下配置:

  • root:指定静态文件所在的根目录
  • maxAge:指定缓存时间(单位为毫秒)
  • etag:指定是否启用 ETag 缓存验证

以下代码展示了如何使用配置项来管理静态文件:

----- ------- - ------------------
----- --- - ---------

------------------ ------------------------ -
  ------- -- - -- - -- - ---- -- ----- - -
  ----- ----- -- -- ---- ----
---

---------------- -- -- -
  ------------------- -- --------- -- ---- -------
--

结论

本文介绍了在 Express.js 应用程序中如何进行缓存控制和静态资源管理。通过合理地使用缓存控制和静态资源管理,可以大幅提升 Web 应用程序的性能和用户体验。

你可以访问 Express.js 官方文档 来深入了解更多有关 Express.js 的技术知识。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671525b8ad1e889fe216fadc