Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用react路由器的局部子路径?_Javascript_Reactjs_Localization_React Router_React Router Redux - Fatal编程技术网

Javascript 使用react路由器的局部子路径?

Javascript 使用react路由器的局部子路径?,javascript,reactjs,localization,react-router,react-router-redux,Javascript,Reactjs,Localization,React Router,React Router Redux,因此,我正在将一个大型现有应用程序转换为React。我们的本地化内容如下所示: www.website.com/about // english www.website.com/es/about // spanish www.website.com/de/about // german <Route path='/' component={App} /> <Route path='/es' component={App} /> <Route pa

因此,我正在将一个大型现有应用程序转换为React。我们的本地化内容如下所示:

www.website.com/about      // english
www.website.com/es/about   // spanish
www.website.com/de/about   // german
<Route path='/' component={App} />
<Route path='/es' component={App} />
<Route path='/de' component={App} />
<Route path='/:language' component={App} />
所以我需要为每个语言环境声明路由,我假设如下:

www.website.com/about      // english
www.website.com/es/about   // spanish
www.website.com/de/about   // german
<Route path='/' component={App} />
<Route path='/es' component={App} />
<Route path='/de' component={App} />
<Route path='/:language' component={App} />

不过,我想知道是否有更简洁的方法来做这件事

<Route path='/:language' component={App} />
此外,我希望所有链接都尊重基本路径,例如:

<Link to='/inbox' />
<Route path='/:language' component={App} />


如果该用户的语言环境是西班牙语,则会自动转到
/es/inbox
。必须有一种预先存在的或通用的方法来执行此操作?

您可以将参数与react router一起使用。大概是

<Route path='/:language' component={App} />


因此,在组件中,您可以访问this.props.params.language,它将具有导航的内容。因此,在组件中,您可以通过一种方法处理这些逻辑

<Route path='/:language' component={App} />
您可以为
语言
参数保留
区域设置
或其他静态
路由

<Route path='/:language' component={App} />
例如

<Route path='/:language' component={App} />
你的链接会像

<Route path='/:language' component={App} />
www.website.com/locale/en/about    // english
www.website.com/locale/es/about   // spanish
www.website.com/locale/de/about   // german
路线是这样的

<Route path='/:language' component={App} />
<Route path='/locale'/>
  <Route path='en' component={App} />
  <Route path='es' component={App} />
  <Route path='de' component={App} />
</Route>


是的,我正在考虑这个问题。问题是我显然把js和css放在同一个位置,所以试图获取
www.website.com/dist/bundle.js
会将
/dist
解释为区域设置。我不确定您使用的是哪台服务器,但它应该以一种方式提供静态内容,即静态内容的URL永远不会到达您的路径匹配代码。从SEO角度来看,这是一个荒谬的解决方案。在这种情况下,将
www.website.com/dist/bundle.js
移动到
www.website.com/dist/js/bundle.js
或其他位置。并将语言保持为
/:language
(直接参数)