node.js - 如何为 gzip 设置适当的 http header

标签 node.js unity-game-engine unity-webgl

我正在使用 Unity 的 WebGL,并且在控制台上收到此消息“如果将 Web 服务器配置为使用 gzip 压缩来托管 .unityweb 文件,则可以减少启动时间。”根据Unity的文档,我需要添加正确的响应 header https://docs.unity3d.com/Manual/webgl-deploying.html .

我找到了“express-static-gzip”模块,我尝试这样做,但警告仍然存在。下面是服务器。

enter image description here

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/

相关文章:

javascript - .map 在 Heroku 上部署时不是函数

node.js - 通过检查 Node JS 中的 2 个字段从 SOLR 中删除记录

c# - 'Rigidbody2D' 游戏对象没有附加 "Player",但脚本正在尝试访问它。 (统一)

grid - 将 UI 图像放入网格布局组 Unity C#

unity-game-engine - 如何使用 Unity 和 Vuforia 创建增强现实 Web 应用程序?

node.js - 函数外部的 Nodejs 变量值

node.js - angular 2中的system.config.js文件有什么用?

object - 使用 Mathf.Clamp() 限制对象旋转时出现问题

Reactjs结合unity webgl导致错误

c# - 从位置找到游戏对象上最近/最近的点?