对于生产环境来说,通过中间件(使用express)预处理静态资源是一个好主意吗?根据我的理解,中间件堆栈是针对每个请求连续运行的。这是否意味着预处理中间会在每次请求后重新生成静态资源(即 some_styles.less -> some_styles.css)?如果是这样,提前通过 grunt.js 等构建系统进行预处理并提供这些文件是否会更好?我希望将 css 和 js 的最终渲染连接到一个文件并缩小。
另外,在只有静态内容的页面上从模板(例如jade)预渲染html是否值得?或者这是否比它的值(value)更麻烦?
最佳答案
处理 CSS 和 JS 预处理和缩小的最简单方法是通过某种构建系统,无论是 grunt、cake 等。它也可能提供一些性能优势;至少,它减少了服务器的工作负载。
对于我的项目,我的 Cakefile 中有处理 CSS 和 JS 的任务。这些是通过运行构建任务来调用的,并且仅输出到通过app.use("/res",express.static("RESDIR"))
设置的静态文件目录。
对于预渲染 HTML,它将提供性能优势。除非做得非常复杂,否则我会继续预渲染您可以轻松完成的所有内容。预先做好比事后固定要简单得多(如果您期望任何形式的增长,它在未来可能很重要)。
关于node.js - 通过快速中间件或构建系统进行预处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616601/