Окончательное обновление
Должно быть в конце этого месяца .
Довольно странно, я развернул несколько сайтов для ядра приложения на стандартномenv NodeJS.Уже поздно, но, надеюсь, я что-то не так делаю.
У меня есть приложение Angular 6 для базового скаффолда, которое я развернул в ядре приложений, и в то время как локально запущенный сервер предоставляет мне сжатый контент, развернутое приложениене является.Довольно стандартный универсальный 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 для развернутого сайта показывает как полный размер файла, так и заголовки ответа не являются "gzip", хотя кодировка accept обычная gzip, br
и т. Д.
Локально, это gzipped.
Я в тупике.
Редактировать:
Так же, как удар, я сделал очень простое приложение, чтобы показатьвопрос.Я прочитал все документы и просто не понимаю, почему, во всяком случае, промежуточному программному обеспечению Express не разрешается обслуживать сжатый контент через промежуточное программное обеспечение compression
.
Заголовки запросовдля самого большого актива:
: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
Заголовки ответа на тот же запрос:
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