是否有办法获取部署在 CDN 上的Meteor应用程序生成的静态资产 - 或 S3 等静态托管解决方案 - 以提高加载速度并降低托管成本?
答案 0 :(得分:1)
我已经在this post详细介绍了我们如何在Edthena完成此任务。 TLDR是:
在服务器代码的某处添加此行:
WebAppInternals.setBundledJsCssPrefix(CDN_URL);
CDN_URL
是您的CloudFront网址(例如https://a27n0s89ik4xb3.cloudfront.net)。
我们在创建CloudFront分配时保留默认值,但以下情况除外:
Origin Domain Name: myapp.example.com
Origin ID: myapp.example.com
Viewer Protocol Policy: HTTPS Only
Compress Objects Automatically: yes
如果您提供自己的字体,最终可能会出现跨源错误(除非您使用字体数据URL)。 Josh Owens描述了如何在his post中处理这个问题。
在meteorhacks博客上查看Cloudflare Meets Meteor。如果您恰好是CloudFlare用户,那么这是一个非常简单的解决方案,但您需要禁用WebSockets(或者付出很多代价,或者使用复杂的解决方法)。
答案 1 :(得分:0)
如果您使用的是陨石,则可以使用此套件:https://github.com/nate-strauser/meteor-aws-sdk
答案 2 :(得分:0)
如果通过demeteorizer进行部署,则可以非常轻松地将static_cacheable
的内容上传到CDN并更改app.html
和app.json
中的链接。
可以在自定义部署/ capistrano脚本中自动执行该过程。