2016-02-16 31 views
0

我有我的gzip JS一個gulpfile:瀏覽器不讀書gzip壓縮的文件 - 平均應用

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,我沒有問題。有了它包括在內,但是,角輸出在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(); 
}); 

我不知道這是在正確的位置,如果是這樣的代碼,允許瀏覽器來閱讀。廣州文件就行了。

回答

1

你不應該同時需要在大口和快遞給gzip -

app.use(compress()); 

就能滿足你的靜態資產。

(不解釋你確切的錯誤,但聽起來好像瀏覽器接收雙gzip壓縮的文件,因此壓縮輸出,它不能讀)

+1

說幹就幹,取出從大口線並取得必要的調整HTML,它現在似乎工作。 Google網頁加速了洞察力測試,並且網站全部壓縮。 – jro

+0

此外,如果你能接受這個答案,將不勝感激 – 7zark7