4

有没有办法获得由部署在CDN或S3等静态托管解决方案上的 Meteor 应用程序生成的静态资产,以提高加载速度并降低托管成本?

4

3 回答 3

1

CloudFront

我在这篇文章中详细介绍了我们如何在 Edthena 实现这一目标。TLDR 是:

在您的服务器代码中的某处添加此行:

WebAppInternals.setBundledJsCssPrefix(CDN_URL);

CDN_URL您的 CloudFront URL在哪里(例如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 在他的帖子中描述了如何处理这个问题。

CloudFlare

在 meteorhacks 博客上查看Cloudflare Meets Meteor 。如果您碰巧是 CloudFlare 用户,这是一个非常简单的解决方案,但您需要禁用 WebSockets(或支付很多费用,或使用复杂的解决方法)。

于 2016-01-24T08:28:41.820 回答
0

如果你使用陨石,你可以使用这个包:https ://github.com/nate-strauser/meteor-aws-sdk

于 2013-07-23T03:32:48.780 回答
0

如果通过demeteorizer部署,很容易将 的内容上传static_cacheable到 CDN 并更改 和 中的app.html链接app.json

该过程可能可以在自定义部署/capistrano 脚本中自动化。

于 2013-07-25T01:28:15.283 回答