有了使用内置api(/ pages / api)的新选项,在客户端js上实现gzip压缩的最佳做法是什么?
我只是最近才开始将应用程序转换为NextJS,因此我仍在学习,但我在灯塔报告中注意到,转换所有内容的过程中,NextJS都不会将生产中的任何内容压缩。
答案 0 :(得分:2)
您可以考虑使用now来部署next.js应用程序。
它在网络/主机层透明地处理压缩,而且相当不错。 设置很简单。在此处https://zeit.co/docs/v2/network/compression进行检查。
最好,它是免费的。
我也在website上使用它,并且在灯塔速度测试中获得了相当不错的成绩。
答案 1 :(得分:0)
以一种非理想的方式回答我自己的问题,以在创可贴方法中解决此问题,因为这是一种创可贴的方法,是在根目录中创建server.js文件(自定义服务器方法)并将其粘贴...
process.env.NODE_ENV = "production";
const compression = require("compression");
const express = require('express');
const next = require('next');
const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();
app.prepare().then(() => {
const server = express();
if (!dev) {
server.use(compression());
}
server.all("*", (req, res) => {
return handle(req, res)
});
server.listen(port, err => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
});
然后将npm start命令更改为此。...
"start": "node server.js"
此操作使用NextJS定制服务器处理程序处理所有请求(获取/发布/删除等),但始终附加压缩。