【问题标题】:How to gzip JavaScript and CSS assets in Sails.js?如何在 Sails.js 中压缩 JavaScript 和 CSS 资产?
【发布时间】:2013-12-23 11:55:12
【问题描述】:

我正在尝试在 Sails.js (Node) 应用程序中为我的资产启用 gzip 压缩。在生产环境中启动应用程序时,assets/linker/jsassets/linker/styles 中的所有资产都已成功连接、缩小、丑化(如 Gruntfile 中所述)。生成以下输出文件:

.tmp/
  public/
    min/
      production.js
      production.css

我也想添加 gzip 压缩,因此我安装了 grunt-contrib-compress 并将压缩任务添加到 Gruntfile。我可以通过成功的 gzip 文件得到以下结果。

.tmp/
  public/
    min/
      production.js
      production.js.gz
      production.css
      production.css.gz

我现在的问题是服务器需要响应压缩文件(当客户端接受编码时)而不是正常的,我找不到这样做的方法。也许政策是做这种事情的捷径?或者有没有其他方式可以使用 express 中间件?

如果有帮助,这是当前的sails-linker 任务,它将javascript production.js 文件插入到标记中:

  ...

  prodJs: {
    options: {
      startTag: '<!--SCRIPTS-->',
      endTag: '<!--SCRIPTS END-->',
      fileTmpl: '<script src="%s"></script>',
      appRoot: '.tmp/public'
    },
    files: {
      '.tmp/public/**/*.html': ['.tmp/public/min/production.js'],
      'views/**/*.html': ['.tmp/public/min/production.js'],
      'views/**/*.ejs': ['.tmp/public/min/production.js']
    }
  },

  ...

非常感谢。

【问题讨论】:

    标签: node.js express gzip sails.js


    【解决方案1】:

    我建议您阅读此 github 问题 (Enable Express compression in Sails.js by default) 和此 stackoverflow 答案 (Add express middleware for param validations) 以了解更多详细信息和sailsjs 框架方式。

    希望对您有所帮助,如果您遇到一些困难,请随时询问更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 2012-03-17
      • 2011-02-09
      相关资源
      最近更新 更多