如何在 Sails.js 中压缩 JavaScript 和 CSS 资源?

2024-03-01

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

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

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

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

我的问题是现在服务器需要使用 gzip 压缩文件进行响应(当客户端接受编码时)而不是正常的编码,我找不到办法做到这一点。也许政策是做这样的事情的出路?或者还有另一种使用快速中间件的方法吗?

如果有帮助,这是当前的 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']
    }
  },

  ...

提前谢谢了。


我建议你阅读这个 github 问题(默认情况下在 Sails.js 中启用快速压缩 https://github.com/balderdashy/sails/issues/1150),以及这个 stackoverflow 答案(添加用于参数验证的快速中间件 https://stackoverflow.com/questions/18215906/add-express-middleware-for-param-validations)了解更多详细信息和 sailsjs 框架方式。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Sails.js 中压缩 JavaScript 和 CSS 资源? 的相关文章

随机推荐

  • 如何在 R 中使用 readHTMLTable 读取注释掉的 HTML 表

    过去 我已经能够使用 R 中的 readHTMLTable 来获取一些足球统计数据 当今年再次尝试这样做时 表格没有显示 即使它们在网页上可见 这是一个例子 http www pro football reference com boxsc
  • 从控制器构造函数中的 URL 获取参数

    我需要编写一些代码来在项目数据库中查找 ID 用户耦合到一个项目 并且所有项目都与其他对象 例如会话 有很多连接 现在 我需要在运行任何操作之前检查尝试访问会话的用户是否连接到与会话连接的同一项目 为此 我想在操作上使用 属性 MVC 创建
  • MySQL:仅在满足条件时更新字段

    是否可以在 MySQL 上执行 UPDATE 查询 仅在满足特定条件时才更新字段值 像这样的事情 UPDATE test SET CASE WHEN true THEN field 1 END WHERE id 123 换句话说 字段 仅在
  • maven antrun 插件

    我的 pom 中有以下内容
  • React Hooks 中的 Push 方法(useState)?

    如何将元素推送到 useState 数组 React hook 中 这是反应状态下的旧方法吗 或者新的东西 E g setState 推送示例 https stackoverflow com questions 41052598 react
  • 默认情况下,Spring Boot 期望视图存储在哪里?

    我正在尝试使用 Spring Boot 重写我的配置繁重的普通 Spring MVC 项目 我使用 Spring Boot Initiaizer 在 IntelliJ 中启动了一个全新的 Spring Boot 项目 并且我将采用基于 Ja
  • pandas groupby 一次用于多个数据帧/文件

    我有多个巨大的 tsv 文件 我正在尝试使用 pandas 处理它们 我想按 col3 和 col5 分组 我试过这个 import pandas as pd df pd read csv filename txt sep t g2 df
  • Web API 将对象传递给 Get 方法

    有没有办法在 Web API 的 Get 方法中将对象作为参数传递 我有以下案例 在我的 Web API 项目中 Get 方法如下所示 public IEnumerable
  • 可以在事件处理函数中删除 POSIX 计时器吗?

    问题 如果我打电话create timer与SIGEV THREAD常量存储在sigev notify我的领域sigevent结构 那么当计时器事件发生时 我的sigev notify function回调将被调用 调用是否有任何隐藏的含义
  • audioop.rms() - 为什么它与正常的 RMS 不同?

    我正在编写一个 python 函数来返回 wav 文件的响度 RMS 似乎是最好的衡量标准 用python检测并记录声音 https stackoverflow com questions 2668442 detect and record
  • 按顺序显示多个Toast的问题

    对不起 我的英语不好 我想按顺序显示两个吐司 换句话说 当第一个吐司持续时间超过第二个吐司时出现 这是我的代码 Toast makeText this Toast1 Toast LENGTH SHORT show Toast makeTex
  • 在 SwiftUI 中连续重复操作

    如何使文本字段等元素连续放大然后缩小 我有这个 struct ContentView View State var size Double 0 5 var body some View ZStack Text Hello padding s
  • 为什么 JLabel 当第一个字符时不显示“/”?

    我有一个摆动面板 里面有一个 JLabel JLabel 看起来像这样 new JLabel Foo br Bar br Foo br Bar 但它在 UI 中显示如下 Bar Foo Bar 由于某种原因 第一行就消失了 如果我去掉斜杠或
  • UDP 数据包在交付时是否保证是完整的、具有实际意义的?

    众所周知 UDP 用户数据报协议 并不安全 因为用它发送的数据包的顺序可能不按顺序传送 甚至根本不按顺序传送 但是 如果发送了 UDP 数据包 该数据包中的信息在实际意义上 99 99 及以上 是否保证正确 在实际意义上 99 99 及以上
  • keytab 到底是如何工作的?

    我对使用 keytab 进行身份验证有一些疑问 希望这里的好心人可以启发我 假设我有一个用户 A 他将使用在端口 1010 上运行的服务 首先 用户 A 将登录到 Active Directory 来验证自己的身份 登录后 userA 将尝
  • 求两个向量之间的差异

    我有两个向量 a lt 1 100 b lt sample 1 100 80 我想显示 a 中未包含在 b 中的那些元素 我努力了subset a a b and a a b 但这些都不起作用 我究竟做错了什么 由于 R 中的矢量化 使用
  • Ubuntu 10服务器上配置Tomcat6 + apache2.2的问题

    我正在尝试在 Ubuntu 服务器 10 上使用 apache 2 2 配置 Tomcat6 我遵循了很多教程 但我无法使其工作 请问有人可以帮助我吗 这是一些信息 mod jk so 位于 apache 模块文件夹中 我的工人属性 wor
  • IGraphBuilder.RenderFile 中无法播放 MP3 文件并出现 COM 异常

    我是导演节目开发的新手 我正在学习有关直接表演的知识 我正在尝试编写一种播放一些音频文件的方法 它适用于许多 mp3 文件 但对于我的某些 mp3 文件 接口 IGraphBuilder 的方法 RenderFile 抛出以下异常 发生 C
  • 检测滑动手势方向

    这是我尝试模拟滑动手势的代码 因此当我构建移动设备时 我知道它会起作用 没有记录任何内容 我很困惑为什么它似乎不起作用 我希望它在我滑动的控制台中打印出来RTL 从右到左 或LTR 左到右 我不明白我做错了什么 void Update if
  • 如何在 Sails.js 中压缩 JavaScript 和 CSS 资源?

    我正在尝试在 Sails js Node 应用程序中为我的资产启用 gzip 压缩 在生产环境中启动应用程序时 所有资产assets linker js and assets linker styles已成功连接 缩小 丑化 如 Grunt