我最近在AppFog上部署了我的Node.js博客。我计划在亚马逊S3上使用一个存储桶来流式传输我的资源(javascript/样式表/图片)。
如何确保Express.js将静态资产放到我的亚马逊S3存储桶中,而不是常规的/public
发布于 2013-02-07 11:47:01
我不会通过节点服务器流式传输资产-这是对资源的浪费,而且您将不得不处理HTTP缓存头。
相反,您的超文本标记语言应该直接链接到S3存储桶。而不是:
<script src="/js/script.js"></script>执行以下操作:
<script src="//s3.amazonaws.com/bucket/js/script.js"></script>鉴于您正在迁移,只需设置一个永久重定向即可。
app.get(/^\/(js|css|images)\/.*/, function(req, res) {
res.redirect(301, '//s3.amazonaws.com/bucket' + req.path);
});这会将js、css和images文件夹中的所有请求重定向到一个S3存储桶中。例如,/js/script.js将重定向到//s3.amazonaws.com/bucket/js/script.js。
这将有助于简化转换,但您仍然应该将站点的引用迁移到HTTP,以消除由重定向引起的不必要的S3往返。
发布于 2013-02-07 11:36:20
如果确实需要这样做,请使用请求库中的管道():https://github.com/mikeal/request#streaming
https://stackoverflow.com/questions/14743053
复制相似问题