没有s3主机的cloudfront spa子路径



我在S3有一个SPA应用程序。EC2中的Api

我的cloudfront逻辑如下:

  • /- api-origin
  • /front/* - s3 bucket-origin

前面有它的方式,例如

  • example.com/front/User/Login
  • example.com/front/Documents/
  • example.com/front/UserSetting/

我设法通过s3桶托管代理启动应用程序。但是我想尝试在不启用s3主机的情况下实现它。

What did I try:

增加了cloudfront功能。

function handler(event) {
var request = event.request;
request.uri = request.uri.replace(/^/[^/]*//, "/");
request.uri += '/front/index.html';
return request;

}

但是我得到404

请告诉我如何正确地实现这个。最好没有Lambda(只有cloudfront函数)

为自己找到了解决办法。我不知道这是否正确,但它确实有效。

function handler(event) {
var request = event.request;

request.uri = request.uri.replace(/^/[^/]*//, "/");

if (!request.uri.includes('.')) {
request.uri = "/index.html";
}
return request;
}

我希望云前端功能不要花费很多钱

最新更新