Heroku 上的 Node.js : use middleware on development, 但生产环境中的静态 Assets ?

标签 node.js deployment heroku assets

一些中间语言,比如Stylus,提供了两种编译方式:通过connect中间件或者通过CLI工具。后者可以生成静态编译资源(即.css文件)。

所以我想在开发模式下使用中间件,但在生产模式下使用静态 Assets 。我知道我可以使用 app.configure('developmen'...) 要求 express (不)在开发模式下使用一些中间件。

在 Amazon EC2 等 IaaS 环境中,我可以运行一个简单的 shell 脚本来自动重新编译我的所有 Assets 。但是 PaaS,特别是 Heroku 呢?我如何告诉它我的 .styl 在哪里以及应该在哪里生成 .css

最佳答案

您可能想看看 https://github.com/adunkman/connect-assets .如果您传递 build:true ,它会缓存任何构建的 javascript 或 css 文件(它具有对手写笔的内置手写笔支持)。

如果您不感兴趣,可以忽略 snockets(类似 sprockets 的 javascript 包含系统),尽管我喜欢使用它。 #= require_tree app 并且您将所有 js 文件包含在该目录中。在开发过程中,您可以获得单独的脚本包含以便于调试。

在 Heroku 上直接使用 connect-assets 服务的最大缺点是每次更新客户端代码时都需要 git push 到 Heroku,这会自动触发重启。我最终手动构建了我的 Assets (使用手写笔和 snockets),然后上传到 S3。如果您不需要经常更新客户端代码,那么这不是什么大问题。

关于Heroku 上的 Node.js : use middleware on development, 但生产环境中的静态 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229462/

相关文章:

php - 在 Windows 上使用 less 和 symfony2

node.js - Express JS 相当于 Python 框架中的装饰器模式

deployment - 应用程序部署到 Windows Phone 7 应用程序而不是 xbox live

node.js - 我可以在 Heroku 子域中使用子域吗?

php - PHP 的 Heroku 内存错误和从 S3 读取大文件

heroku - 在heroku docker内运行gunicorn

node.js - 使用redis水平扩展express/node.js和socket.io

javascript - Cloud Functions Cloud Firestore 触发器

php - 您使用哪些工具/语言部署 PHP Web 应用程序?

java - H2 嵌入式数据库在部署时丢失表/数据