一些中间语言,比如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/