最终更新
应该是rolling out end of this month .
这里很奇怪,我已经将一些站点部署到标准环境 NodeJS 上的应用程序引擎。虽然已经晚了,但希望我做错了什么。
我有一个基本脚手架 Angular 6 应用程序,已部署到应用程序引擎,虽然本地运行的服务器为我提供了 gzip 压缩的内容,但部署的应用程序却没有。非常标准的通用server.ts
:
import 'zone.js/dist/zone-node';
import 'reflect-metadata';
import * as express from 'express';
import compression from 'compression';
import { enableProdMode } from '@angular/core';
import { join } from 'path';
enableProdMode();
const app = express();
app.use(compression()); // <== Definitely using compression here
const PORT = process.env.PORT || 8080;
const DIST_FOLDER = join(process.cwd(), 'dist');
// * NOTE :: leave this as require() since this file is built Dynamically from webpack
const {
AppServerModuleNgFactory,
LAZY_MODULE_MAP
} = require('./dist/server/main');
// Express Engine
import { ngExpressEngine } from '@nguniversal/express-engine';
// Import module map for lazy loading
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
app.engine(
'html',
ngExpressEngine({
bootstrap: AppServerModuleNgFactory,
providers: [provideModuleMap(LAZY_MODULE_MAP)]
})
);
app.set('view engine', 'html');
app.set('views', join(DIST_FOLDER, 'browser'));
// Server static files from /browser
app.get('*.*', express.static(join(DIST_FOLDER, 'browser')));
// All regular routes use the Universal engine
app.get('*', (req, res) => {
res.render('index', { req });
});
// Start up the Node server
app.listen(PORT, () => {
console.log(`Node server listening on http://localhost:${PORT}`);
});
已部署站点的 Devtools 显示完整文件大小,并且响应 header 不是“gzip”,尽管接受编码是通常的 gzip、br
等。
在本地,它是 gzip 压缩的。
我被难住了。
编辑:
作为一个坎坷,我做了一个非常基本的应用程序来展示这个问题。我已经阅读了所有文档,但我真的不明白为什么(如果有的话)为什么不允许 Express 中间件通过 压缩
中间件提供 gzip 压缩的内容。
最大 Assets 的请求 header :
:authority: ng-universal-test-220902.appspot.com
:method: GET
:path: /main.119034af43b36e354210.js
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cache-control: no-cache
pragma: no-cache
referer: https://ng-universal-test-220902.appspot.com/
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36
同一请求的响应 header :
accept-ranges: bytes
alt-svc: quic=":443"; ma=2592000; v="44,43,39,35"
cache-control: public, max-age=0
content-length: 642804
content-type: application/javascript; charset=UTF-8
date: Mon, 29 Oct 2018 02:26:38 GMT
etag: W/"9cef4-166bda0e164"
last-modified: Mon, 29 Oct 2018 02:22:09 GMT
server: Google Frontend
status: 200
vary: Accept-Encoding
x-cloud-trace-context: 8d126079c95f2e6bbced4265c46a87ca
x-powered-by: Express
最佳答案
关于angular - 部署的应用程序引擎未对我的内容进行 gzip 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52752100/