gpt4 book ai didi

url - 在不破坏 URL 的情况下将 ember-cli 应用程序部署到 S3

转载 作者:行者123 更新时间:2023-12-04 10:37:18 25 4
gpt4 key购买 nike

我正在开发我在 S3 中部署的 ember-cli 应用程序。我真的很希望能够使用这种“无服务器”方法,因为它配置起来非常简单,而且非常实惠。

我的网址有问题。如果我打 http://my-bucket.s3-website-us-east-1.amazonaws.com/它工作得很好。但是如果我尝试直接加载应用程序根目录以外的页面,例如http://my-bucket.s3-website-us-east-1.amazonaws.com/elephants/5 ,然后它给出 403,因为在 S3 中没有这样的资源。 (我可以通过应用程序很好地导航到这些页面,我可以在我的机器上直接在开发模式下点击它们,所以 ember 应用程序工作正常。)

寻找解决方案,我发现suggestions添加 #!到我的路径。这似乎更好,因为它不会返回 403,但是当我点击 http://my-bucket.s3-website-us-east-1.amazonaws.com/#!/elephants/5 时,它只是重定向到 http://my-bucket.s3-website-us-east-1.amazonaws.com ,丢失路径包含的任何特定信息。

我有哪些选择?有没有办法使用 S3 并拥有有效的 URL?我需要服务器吗?还是有另一种方法让我望而却步?

最佳答案

仅使用基于 # 的重定向的方法几乎没有问题。我在下面列出了它们:

  • 解析您的应用程序路径时会发生多重重定向。例如:www.myapp.com/path/for/test 被重定向为 www.myapp.com/#/path/for/test
  • 由于 SPA 框架的作用,“#”出现和消失时,网址栏中会闪烁。
  • seo 受到影响,因为 - '嘿!它的谷歌强制他的手重定向'
  • Safari 对您的应用程序的支持需要折腾。

  • 一种与 Ember-CLI-Deploy 提倡的 Lightening 部署方法相异的方法如下:
  • 确保为您的网站配置了索引路由。主要是 index.html
  • 从 S3 配置中删除路由规则
  • 在您的 S3 存储桶前面放置一个 Cloudfront。
  • 为您的 Cloudfront 实例配置错误页面规则。在错误规则中指定:
  • Http 错误代码:404(以及 403 或其他需要的错误)
  • 错误缓存最小 TTL(秒):0
  • 自定义响应:是
  • 响应页面路径:/index.html
  • HTTP 响应代码:200

  • 5.对于SEO需求+确保您的index.html不缓存,请执行以下操作:
  • 配置 EC2 实例并设置 nginx 服务器。
  • 为您的 EC2 实例分配一个公有 IP。
  • 创建一个 ELB,将您创建的 EC2 实例作为实例
  • 您应该能够将 ELB 分配给您的 DNS。
  • 现在,配置您的 nginx 服务器以执行以下操作: Proxy_pass 所有请求到您的 CDN(仅适用于 index.html,直接从您的云前端提供其他 Assets ),对于搜索机器人,根据 Prerender.io 等服务的规定重定向流量

  • 我可以提供有关 nginx 设置的更多详细信息,请留言。已经学会了它的艰难方式。

    一旦云前端分发更新。使您的 Cloudfront 缓存无效一次以处于原始模式。
    在浏览器中点击 url,一切都应该很好。

    关于url - 在不破坏 URL 的情况下将 ember-cli 应用程序部署到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862451/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com