我正在使用 Unity 的 WebGL,并且在控制台上收到此消息“如果将 Web 服务器配置为使用 gzip 压缩来托管 .unityweb 文件,则可以减少启动时间。”根据Unity的文档,我需要添加正确的响应 header https://docs.unity3d.com/Manual/webgl-deploying.html .
我找到了“express-static-gzip”模块,我尝试这样做,但警告仍然存在。下面是服务器。
const express = require('express');
const ip = require("ip");
const expressStaticGzip = require('express-static-gzip');
const http = require('http');
const app = express();
const server = http.Server(app);
app.use('/public/Builds/Build/', expressStaticGzip('public/Builds/Build/', {
customCompressions: [{
encodingName: "gzip",
fileExtension: "unityweb"
}]
}));
// app.use(compression());
app.use(express.static('public'));
server.listen(3000, function(){
console.log( ":: http://" + ip.address() + "/ ::" );
});
有什么想法吗? 尼克
最佳答案
非常感谢@d_shiv 的帮助。我将代码更改为以下内容,警告消失了。
(如果您使用 brotli,则可以使用 br 更改 gzip)
const express = require('express');
const ip = require("ip");
const http = require('http');
const app = express();
const server = http.Server(app);
app.use(express.static('public', {
setHeaders: function(res, path) {
if(path.endsWith(".unityweb")){
res.set("Content-Encoding", "gzip");
}
}
}));
server.listen(3000, function(){
console.log( ":: http://" + ip.address() + ":3000/ ::" );
});
关于node.js - 如何为 gzip 设置适当的 http header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56735516/