You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地正常,AWS Amplify部署后HttpClient.get返回index.html而非资源文件

解决AWS Amplify部署Angular后静态资源请求返回HTML的问题

本地运行Angular项目时,通过HTTP请求./assets/data/test.txt可正常获取文件内容,但部署到AWS Amplify后,请求返回的却是Angular应用的HTML页面,进而触发ERROR Error: Invalid HTML: could not find <table>错误。以下是针对性解决方案:

  • 调整Amplify重写规则
    AWS Amplify默认重写规则会将所有未匹配到静态资源的请求导向index.html,导致assets目录下的文件请求被错误路由。需添加优先级更高的规则:

    1. 进入Amplify控制台对应项目,打开左侧菜单「App settings」→「Rewrites and Redirects」
    2. 添加新规则:
      • 源地址:^/assets/(.*)$
      • 目标地址:/assets/$1
      • 类型:200 (Rewrite)
    3. 将这条规则拖动到默认规则之前,确保优先匹配静态资源请求。
  • 确认Angular assets配置
    检查angular.json中的assets配置项,确保src/assets被正确纳入打包范围:

    "assets": [
      "src/favicon.ico",
      "src/assets"
    ]
    

    修改后重新构建项目,再部署到Amplify。

  • 修正请求路径
    若组件是在路由路径下发起请求,相对路径可能出现解析错误,建议改用绝对路径:

    this.http
      .get("/assets/data/test.txt", { responseType: "text" })
      .subscribe((data) => {
        console.log(data);
      });
    

内容的提问来源于stack exchange,提问作者Matthew Coatney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:25:59