我不想使用一个图书馆,因为头顶上的飞行。
该网站有一些dynamic组件,在node.js中实现。
我有一些静态js和css文件以及他们的gzip对应。 我只想将gzip版本提供给支持它的浏览器。
我考虑在express中使用静态中间件来提供静态文件,以及一些URL重写中间件来有条件地提供gzip文件。 但是,我找不到任何有条件的重写模块。
使用Express和Nginx反向代理的Vue路由器历史logging模式
GoogleredirectURI不允许使用片段url的解决方法
在express上使用ngix和ssl实现的反向代理失败
使用Express服务网页时,使用`path.join`节点JS TypeError
Node.js Express静态资产的区分大小写
我不能相信没有人这样做,或者需要这么多的工作。 我错过了什么?
另一方面,通过node.js提供静态文件太昂贵了吗? 另一方面,将Apache用于静态文件并在后面运行node.js似乎也不好。 什么是AWS EC2托pipe最不笨的configuration?
Amazon VPC中实例的AWS通信
Windows Nginx + nodejs API,proxy_connect_timeout已到达
Nginx上的NodeJs不能在url中没有端口号的情况下工作
如何在一个VPS上托pipe3个不同域的3个节点的应用程序?
如果你想为你的客户提供最好的性能,只需使用CDN。 它会照顾你和其他许多东西。 如果您需要帮助,可以使用express-cdn模块。
如果你因为某些原因不喜欢CDN,最好的选择就是使用Nginx。 我在你的问题上看到它的标签,但你没有提到任何事情。 Nginx比node.js快得多 对于Nginx,你可以检查它是gzip-static模块 。
如果你仍然想使用node.js,那么connect-gzip-static是你最好的选择。 它和Nginx-gzip-static模块几乎一样。 如果所请求文件的.gz文件对应,则将使用该文件,否则将回退到正常的连接静态模块。
不要忘了事先编译文件,如果你使用gulp,那么你也可以使用gulp-gzip 。 如果不是只使用gzip命令。
还有gzippo ,它在飞行中gzip,但它也缓存在内存中的结果。 所以它只会被gzip一次。
此代码正在使用Express 4
app.get('*.js',function(req,res,next) { req.url = req.url + '.gz'; res.set('content-encoding','gzip'); res.set('Content-Type','text/javascript'); next(); }); app.get('*.css','text/css'); next(); });
确保你正在为压缩文件设置正确的内容类型 – mime-types reference – 像这样:
res.set('Content-Type','text/css');
或者它不会工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。