Heroku上的Node.js:在开发中使用中间件,但在生产中使用静态资产?

问题描述 投票:5回答:2

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

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

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

node.js deployment heroku assets
2个回答
0
投票

您可以查看express-cdn ,它将在服务器启动时将您的资产上传到S3。

我最终做的是在CloudFlare上注册,发现它没有使用CloudFront那么快,但它很容易设置,它比我的dyno提供资产文件更好。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.