浏览器未读取压缩文件 - MEAN 应用程序
Browser isn't reading gzipped file - MEAN app
我有一个压缩我的 js 的 gulpfile:
gulp.task('angular', function() {
return gulp.src(['public/app/*.js'])
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(ngAnnotate())
.pipe(concat('app.js'))
.pipe(uglify())
.pipe(gzip({ append: true})) // Relevant line here
.pipe(gulp.dest('public/app/dist'));
});
在我的 index.html 文件中:
<script src="app/dist/app.js.gz"></script>
当我注释掉执行 gzip 压缩的行时,我没有遇到任何问题。但是,包含它后,Angular 在 Chrome 控制台中输出一条消息:
Uncaught SyntaxError: Unexpected token ILLEGAL
gzip 文件中的字符看起来像是菱形,所以可能它没有正确 gzip 并且浏览器没有读取这些字符。
还有一个问题是,您可以使用 express 4.0 进行压缩。我已将其添加到我的服务器文件中:
var compress = require('compression');
...
app.use(compress()); // Relevant line here
app.use(bodyParser.json({limit: '1mb'}));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(bodyParser.json());
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization');
next();
});
我不知道这是否在正确的位置以及这是否是允许浏览器读取 .gz 文件的代码行。
您不需要在 gulp 和 Express 中都进行 gzip -
app.use(compress());
足以满足您的静态资产需求。
(没有解释您的确切错误,但听起来好像浏览器正在接收双压缩文件,因此无法读取压缩输出)
我有一个压缩我的 js 的 gulpfile:
gulp.task('angular', function() {
return gulp.src(['public/app/*.js'])
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(ngAnnotate())
.pipe(concat('app.js'))
.pipe(uglify())
.pipe(gzip({ append: true})) // Relevant line here
.pipe(gulp.dest('public/app/dist'));
});
在我的 index.html 文件中:
<script src="app/dist/app.js.gz"></script>
当我注释掉执行 gzip 压缩的行时,我没有遇到任何问题。但是,包含它后,Angular 在 Chrome 控制台中输出一条消息:
Uncaught SyntaxError: Unexpected token ILLEGAL
gzip 文件中的字符看起来像是菱形,所以可能它没有正确 gzip 并且浏览器没有读取这些字符。
还有一个问题是,您可以使用 express 4.0 进行压缩。我已将其添加到我的服务器文件中:
var compress = require('compression');
...
app.use(compress()); // Relevant line here
app.use(bodyParser.json({limit: '1mb'}));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(bodyParser.json());
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization');
next();
});
我不知道这是否在正确的位置以及这是否是允许浏览器读取 .gz 文件的代码行。
您不需要在 gulp 和 Express 中都进行 gzip -
app.use(compress());
足以满足您的静态资产需求。
(没有解释您的确切错误,但听起来好像浏览器正在接收双压缩文件,因此无法读取压缩输出)