React 应用程序托管在 s3 意外令牌上 <

kar*_*eem 9 amazon-s3 npm amazon-cloudfront reactjs serverless-framework

我正在使用 servereless 来部署后端和前端。我的前端正在使用创建反应应用程序。我相信在我做了以下改变之后

<img className="svg-width" src="/img/Icons/photographer-camera.svg" alt="camera icon" />



<img className="svg-width" src="/img/icons/photographer-camera.svg" alt="camera icon" />
Run Code Online (Sandbox Code Playgroud)

当我将Icons/更改为Icons/时,出现以下问题:

未捕获的语法错误:意外的标记 <

在我的 s3 存储桶中,我导航到 img/ 并验证我的目录的图标也是小写的。

S3目录

存在语法错误的文件main.977eb738.js位于我的域的 /static/js/main.977eb738.js 下。但是当我转到我的存储桶时,我没有看到该 js 文件。我懂了

S3中的JS目录

它抱怨的文件中的代码是index.htmlcreate React app 样板文件中的 public/index.html 。

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="theme-color" content="#000000">
    <script src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&libraries=places"></script>
    <script src="https://js.stripe.com/v3/"></script>
  </head>
  <body>
    <noscript>
      You need to enable JavaScript to run this app.
    </noscript>
    <div id="root"></div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

还要注意的另一件事是,这在本地甚至移动设备上都可以正常工作。我认为这可能是云端缓存,所以我等了一整天,仍然无法弄清楚这个错误的真相。

And*_*cia 5

我遇到了同样的问题。我测试了隐身模式,在按照迈克尔在第一条评论中所述的方式进行缓存失效后,该网站在 inco 中运行良好。看起来它是与 Cloudfront 缓存并存的浏览器缓存。

我能够通过清除最后一天的浏览器 cookie/数据来解决该问题。

  • 我面临同样的问题,清除浏览器上的缓存可以达到预期的目的,但如何在所有其他客户浏览器上修复它?多谢 ! (2认同)