AWS S3+cloudfront部署静态网站总结

959 阅读1分钟

AWS S3可以托管静态网站,但如果直接把Vue打包后的静态文件放在S3上直接访问,会发生一些错误,以下回顾在S3上部署SPA单页面应用的出现的一些问题,以及如何解决这些问题。

  1. 登录页404问题

将英文版后台Vue项目打包,上传dist文件至S3上的指定存储桶,然后直接访问,登录页返回404。

S3存储桶默认情况下不会自动解析index文件,如果直接访问登录页的URL,会导致404错误。

处理方式:在S3存储桶的配置中启用静态网站托管,并将错误页面配置为index.html。当访问不存在的路径时,S3将返回index.html文件。

  1. 多级路由页面刷新后页面加载失败

按照以上方式对S3存储桶设置之后,登录页和根路由页面可以正常访问,多级路由页面可以正常切换,但在多级路由页面刷新的时候,页面一直处于加载状态,返回码为404。

处理方式:配置CloudFront

  1. 配置CloudFront

AWS S3 负责存储静态文件。 CloudFront 负责做 CDN,加速访问。

配置如下:

Cloudfront->选择项目的cdn->Error Pages->Create custom error response

  1. 报错:Uncaught SyntaxError: Unexpected token '<' 。

配置cloudfront后访问我们部署的网页,出现以上报错。

解决:将打包文件中的html文件中引入的静态资源路径前面加/

参考文章:www.cnblogs.com/smile-fanyi…