公共目录未部署在 AWS Amplify 上

我正在开发一个由 React/IONIC 构建的项目。现在我正在尝试将社交登录添加到应用程序中,为此我需要在以下目录中放置一个文件:/.well-known/apple-app-site-association

但问题是,每当我尝试在 Amplify 上部署应用程序(它连接到 github 存储库)时,它都不会部署 /public 文件夹。

我的 Amplify.yml 文件如下:

version: 1.2.9 env: variables: REACT_APP_API_ENDPOINT: https://******.execute-api.ca-central-1.amazonaws.com/staging frontend: phases: preBuild: commands: ['npm ci'] build: commands: ['npm run build'] artifacts: baseDirectory: build files: - '**/*' cache: paths: - 'node_modules/**/*'

我真的很感谢你在这里的帮助。

stack overflow public directory is not deployed on AWS Amplify
原文答案

答案:

作者头像

公共文件夹的内容部署在根文件夹上。因此,您可以从 https:///.well-known/apple-app-site-association 获得 /.well-known/apple-app-site-association

您必须在 AWS 控制台中的 AWS Amplify 中添加自定义重写和重定向,因为默认重写会将所有请求重定向到 Index.html 以供 React App 处理

作者头像

到目前为止,我刚刚在 Amplify 上部署了一个 React 应用程序。而且我不会在 amplify.yml 中询问 public/ 文件夹的部署。相反,我使用 yarn build 创建项目的构建,它将公共文件夹的内容嵌入到新的 build/ 文件夹中。所以我希望 Ionic 不会要求将公共文件夹部署在 build/ 文件夹之上。

我还发现,每当我的 React 应用程序发出 GET 之类的 my-domain.com/privacy.pdf 请求时,我都需要在 Amplify 的重写和重定向菜单中配置 URL 路由。

只要我没有在先前存在的...中指定“.pdf”...

</^[^.]+$|.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>   /index.html 200 (Rewrite)`

...规则,路由无法获取 privacy.pdf 文件。

如果您尝试加载的标志的文件扩展名不包含在重写规则中,我建议您也查看徽标的文件扩展名。

作者头像

TL;博士

删除所有重定向,因此它将托管公用文件夹及其内容。 enter image description here

无需重新部署服务器。更改是即时进行的。

相关问题