我只有一个页面React
,网站的其余部分(当前)是Rails
。
React
页具有一条路由,不需要任何其他路由。
我想将路由请求发送回Rails
服务器,而不是由React
接收。当前,您可以按预期使用Rails
页,直到进入React
页为止,此时无论URL如何,您都无法退出React
页。
构建React
页后,该构建将移至Rails
应用程序中的公用文件夹。我使用控制器操作通过渲染公用文件夹中的索引页来调用React
页。
Controller
def react_index_html
render file: 'public/index.html'
end
Route
get '/trade', to: "react#react_index_html", constraints: ->(request) do
!request.xhr? && request.format.html?
end
让我知道是否需要提供更多信息来帮助您。我在网上广泛搜索了答案,但是我的搜索组合返回了有关react-router
并在React
页面内进行路由的信息,但找不到与我想做的事情有关的任何事情。
***澄清:react页面托管在/ trade上,基本上任何不包含/ trade的路径名都应该通过rails路由,而不是react。
答案 0 :(得分:0)
事实证明,我犯的错误是我将页面托管在public文件夹中,而不是public / trade文件夹中,并且将主页变量设置在
的package.json文件中"homepage": "www.publicurl.com/trade"
在我的rails项目根目录的package.json文件中,
"build": "cd react-client && npm install && npm run build && cd ..",
"deploy": "cp -a react-client/build/. public/",
"postinstall": "npm run build && npm run deploy && echo 'Client built!'"
我将其更改为:
"build": "cd react-client && npm install && npm run build && cd ..",
"deploy": "mkdir public/trade && cp -a react-client/build/. public/trade/",
"postinstall": "npm run build && npm run deploy && echo 'Client built!'"
这是骗人的,现在所有不是“ / trade”的URL都通过rails路由器进行路由。