【问题标题】:Deploying Meteor on a CDN or S3在 CDN 或 S3 上部署 Meteor
【发布时间】:2018-05-03 08:21:35
【问题描述】:

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

【问题讨论】:

    标签: deployment amazon-s3 meteor cdn frontend


    【解决方案1】:

    云端

    我在 this post 中详细介绍了我们在 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 在his post 中描述了如何处理这个问题。

    CloudFlare

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这是为了访问您的 S3 存储桶。我在有流星链接到/远程上传其静态资产之后。
    【解决方案3】:

    如果通过demeteorizer部署,将static_cacheable的内容上传到CDN并更改app.htmlapp.json中的链接非常容易。

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

    【讨论】:

    • 如果有人想出更简单/内置的东西,我会接受其他答案。
    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2016-01-21
    • 1970-01-01
    • 2016-06-30
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多