世博会建立网页页面路径

时间:2020-10-29 20:24:45

标签: react-native expo react-navigation

我已经在博览会上做了一个项目。

工作正常,我很高兴,但是现在我需要直接访问子页面(例如https://example.com/backoffice

在App.js中,我做到了:

...
const linking = {
    prefixes: ['https:/example.com'],
    config: {
      screens: {
        Home: '',
        Backoffice: '/backoffice',
      }
    },
  };

  return (
    <NavigationContainer linking={linking}>
...

如果我以开发模式执行代码,并将站点调用到:19006端口,则可以直接访问子页面。

如果我在expo build:webnpx serve web-build之后执行代码,则无法访问子页面(我收到未找到404的信息)。

1 个答案:

答案 0 :(得分:1)

由于您正在使用服务,因此您需要serve.json来处理重定向。 Expo会自动生成一个serve.jsonexpo build:web,但是它不包含任何重定向代码。您可以在app.json中添加一个设置,以自动生成重定向代码,但我在文档中看不到任何内容。 (希望有人可以在这里启发我)。

假设这是一个带有index.html的单页Web应用程序,则在构建Web应用程序后,需要在serve.json内添加以下内容:

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

此方法并不理想,因为每次构建Web应用程序时都必须这样做,但至少它应允许您在本地运行构建时访问子页面。

例如,如果要在Netlify上进行部署,则需要添加一个_redirects文件。我将_redirects文件放在项目根目录下的目录web中(即web/_redirects),您可以在Netlify文档中找到有关重定向文件的更多信息,但该文件应如下所示:

/*    /index.html   200

创建此文件后,如果运行expo build:web,则应在web-build目录中看到它。这应该允许您将Netlify部署为单页Web应用程序。