首页 > 解决方案 > Expo + React Navigation + Vercel:深度链接不起作用

问题描述

我正在使用 expo sdk41、react navigation 5 和 vercel 来部署一个使用expo build:web.

当我在本地开发时,我可以进行深度链接,例如http://localhost:19006/sign-in. 但是,当我将其部署到 vercel 并为其分配域名时,深度链接不再起作用。

我已经在做以下事情,这允许深度链接在开发中工作:

export const linking = {
    prefixes: [Linking.createUrl('/'),
    screens: {
        ...
    }
}

为什么深度链接在开发中有效,而不是在部署到 vercel 时有效?

如果需要,我很乐意添加更多信息。

标签: exporeact-navigation-v5vercel

解决方案


运行expo build:web捆绑一个 SPA,您需要将对已部署应用程序的调用重定向到index.html. Vercel 允许使用vercel.json位于项目根目录的配置文件来配置重定向。

web/在您的 Expo 根目录中添加一个文件夹,并vercel.json在该web/文件夹中创建一个包含以下内容的文件:

{
  "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}

该文件将web-build在您运行时复制到该文件夹​​中expo build:web


推荐阅读