部署在Amplify的Vue Router应用无法直接访问指定文件求助
解决Amplify部署Vue应用后无法访问Apple商户ID验证文件的问题
问题根源
你之前的做法存在两个核心错误:
- 前端路由无法处理静态文件请求:Vue Router的路由是前端逻辑,而Apple验证需要服务器直接返回
apple-developer-merchantid-domain-association文件的纯文本内容,不是通过前端组件跳转。 - 本地文件路径无效:组件里的
window.open('file:///.well-known/...')是本地环境的路径,部署到Amplify的云服务器后完全不存在,自然无法生效。
正确解决方案
1. 放置验证文件到正确目录
将apple-developer-merchantid-domain-association文件放到Vue项目的public/.well-known/目录下(如果.well-known目录不存在就新建)。
- 这个目录下的文件在Vue构建时会被直接复制到
dist根目录,Amplify会把它当作静态资源处理。
2. 配置Amplify的重定向规则
因为你用了Vue Router的history模式,Amplify默认会把所有请求重定向到index.html,所以需要调整规则让.well-known路径的请求优先访问静态文件:
在Amplify控制台的Rewrites and redirects页面:
- 先添加一条优先级最高的规则:
- Source address:
/.well-known/* - Target address:
/.well-known/* - Type:
200 (Rewrite)
- Source address:
- 保留原有的SPA重定向规则(通常是第二条):
- Source address:
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/> - Target address:
/index.html - Type:
200 (Rewrite)
- Source address:
3. 移除无效的路由和组件
删除你之前在router/index.js中添加的/.well-known/apple-app-site-association路由,以及对应的AppleVerification.vue组件——这些完全没必要,反而会干扰静态文件的访问。
验证方法
部署完成后,直接访问https://你的Amplify域名/.well-known/apple-developer-merchantid-domain-association,应该能看到文件的纯文本内容,此时就能通过Stripe的Apple商户ID验证了。
内容的提问来源于stack exchange,提问作者Florian Pereme
相关产品推荐
相关产品推荐

