我有一个create-react
的{{1}}应用。如果我从根(即“ /”)开始,然后遵循react-router-dom
中定义的链接,则效果很好。但是,如果我尝试不从根路径加载应用程序,则会显示
Link
据我了解,这应该在服务器端设置(我正在常规localhost:9000上工作)。或不?无论如何,如何实际实现呢?
注意,这与基本路径解析问题无关,此处描述:Can I set a base route in react-router
已更新:
我想,应该有一种类似于使用Cannot GET /<path>
的解决方案。但是我仍然不知道如何将其应用于.htaccess
。或者,也许可以在webpack.config.js中设置适当的选项?
更新2 。回购在这里:https://github.com/srgg6701/react-mini
答案 0 :(得分:2)
由于所有路由均由通常位于'/'
(索引)路径中的路由器处理,因此您需要回退到索引,以便路由器知道重定向的位置。可以通过在服务器端设置路径来完成此操作,但是我发现this package在这些问题上特别有用。
Webpack
如果您使用的是webpack-dev-server,则应该知道它具有以下功能(摘自官方文档):
将Webpack与提供实时重载的开发服务器一起使用。 这应该仅用于开发。
它在后台使用了webpack-dev-middleware,可提供快速的 在内存中访问Webpack资产。
...
这两种方法都将启动服务器实例并开始侦听 从本地主机通过端口8080连接。
这意味着服务器将在侦听localhost的情况下运行。您可以使用以前的方法(服务器端编码或中间件)或使用history api fallback option来解决此问题:
"scripts": {
"start": "webpack-dev-server --history-api-fallback --config webpack.dev.config.js",
"build": "webpack"
},
请查看webpack的官方文档,以获取有关其所有组件的更多信息。