提供预制的gzip文件

时间:2017-06-21 13:37:35

标签: node.js webpack gzip

我使用compression-webpack-plugin在我的捆绑进程中制作gzip文件,所以在捆绑完成后我的dist文件夹中有这样的文件。

bundle.eefaef91f71795847e74.js
bundle.eefaef91f71795847e74.js.gz
vendor.jduu4f4lj71759dj7e74.js
vendor.jduu4f4lj71759dj7e74.js.gz
stylesLocal.b7ac53d721aca93e4e65099cf74dc90f.css
stylesLocal.b7ac53d721aca93e4e65099cf74dc90f.css.gz

在服务器内部我使用express-static-gzip来提供我的gzip文件。为什么这不起作用。我的页面甚至不想加载?如果我使用 Express.static 而不是 expressStaticGzip ,它会正常工作。

import Express from 'express'
import path from 'path'
import conf from './conf'
import appRenderer from './appRenderer'
import webpackUtils from './webpackUtils'
var expressStaticGzip = require('express-static-gzip')

const APP_PORT: number = conf.APP_PORT
const PORT: any = process.env.PORT || APP_PORT

const app: Express = new Express()

app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')

app.use(expressStaticGzip(path.join(__dirname, '../', 'dist')))

/* check with the server before using the cached resource */
app.use((req: Object, res: Object, next: () => void): void => {
  res.set('Cache-Control', 'no-cache')
  return next()
})

/* Use server side rendering for first load */
app.use(appRenderer)

/* Use CommonChunks and long term caching */
app.use(webpackUtils)

// Routes
app.get('*', (req: Object, res: Object) => {
  res.render('index', {app: req.body})
})

app.listen(PORT, () => {
  console.log(`
  Express server is up on port ${PORT}
  Production environment
  `)
})

我在index.ejs文件中引用它们。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />

    <title>D</title>

      <link rel='stylesheet' type='text/css' href="stylesLocal.b7ac53d721aca93e4e65099cf74dc90f.css">
</head>

  <body>

      <div id="app"><%- app %></div>
      <script src="vendor.jduu4f4lj71759dj7e74.js"></script>
      <script src="bundle.eefaef91f71795847e74.js"></script>

  </body>
</html>

1 个答案:

答案 0 :(得分:0)

正如readme of express-static-gzip中所述,语法与express.static略有不同。

而不是

app.use(expressStaticGzip(path.join(__dirname, '../', 'dist')))

app.use('/', expressStaticGzip(path.join(__dirname, '../', 'dist')))