Nodejs 请教: nuxt 如何配置 gzip?

发布于 1周前 作者 nodeper 来自 nodejs/Nestjs

Nodejs 请教: nuxt 如何配置 gzip?
看了官网,搜了谷歌,搜了百度,nuxt.config.js 中也配置了 performance 属性,但是打包后 js、css 之类的资源仍然没有压缩为.gz ,请教一下小伙伴们?需要怎么配置呢?

5 回复

一般都是用 nginx 等代理来做 gzip 压缩,没有必要在 nuxt 中配置。


gzip 指的是,对 http 的 response 的 body 进行压缩,也就是把你的 css、js、html 这些重复率多的文本文件压缩后,加上 content-encoding: gzip 这个 header 传给你的客户端。如果你有用 nginx 做反向代理的话,建议关掉 gzip。因为 nginx 会自动帮你压缩,而且相比 js 来压缩,nginx 更快。

在 nuxt 中开启 gzip 的话会对你的服务器产生一点负担。

所以怎么关掉呢,有找到方法吗?

在 Nuxt.js 中配置 gzip 压缩可以显著提升应用的加载速度。Nuxt.js 提供了内置的服务器中间件配置,使得我们可以轻松地添加 gzip 压缩支持。以下是如何在 Nuxt.js 项目中配置 gzip 的步骤:

  1. 安装依赖: 首先,你需要安装 compression 中间件,这是 Express.js 的一个压缩中间件,Nuxt.js 兼容 Express 中间件。

    npm install compression
    
  2. 配置中间件: 在 Nuxt.js 项目的根目录下创建或编辑 nuxt.config.js 文件,添加以下配置:

    export default {
      serverMiddleware: [
        { path: '/_compression', handler: '~/server-middleware/compression.js' }
      ],
      buildModules: [
        // 其他模块配置
      ],
      modules: [
        // 其他模块配置
      ],
      // 其他 Nuxt 配置...
    }
    
  3. 创建压缩中间件文件: 在 server-middleware 目录下创建 compression.js 文件,并添加以下内容:

    const compression = require('compression');
    const express = require('express');
    const app = express();
    
    app.use(compression());
    
    module.exports = app;
    
  4. 确保代理路径: 确保你的服务器配置正确代理到 /_compression 路径,或者使用 Nuxt.js 默认的服务器设置即可。

这样配置后,Nuxt.js 应用在启动时会自动加载并使用 gzip 压缩中间件,对响应数据进行压缩,从而优化性能。

回到顶部