Reactjs React路由在本地工作,但在我的web主机上不工作
我有一个React应用程序,它在我的本地应用程序上运行得很好,但我的路线在我的web主机(OVH web cloud)上不起作用 我查看了很多关于它的帖子,我试着按照他们的建议去做,但我觉得我遗漏了一些东西 如果我理解得很好,我就无法访问Reactjs React路由在本地工作,但在我的web主机上不工作,reactjs,react-router,ovh,Reactjs,React Router,Ovh,我有一个React应用程序,它在我的本地应用程序上运行得很好,但我的路线在我的web主机(OVH web cloud)上不起作用 我查看了很多关于它的帖子,我试着按照他们的建议去做,但我觉得我遗漏了一些东西 如果我理解得很好,我就无法访问www.mysite/login,因为在我的dist文件夹中没有login.html 所以我试着创建一个像这样的static.json { "root": "dist/", "clean_urls": false, "routes": {
www.mysite/login
,因为在我的dist
文件夹中没有login.html
所以我试着创建一个像这样的static.json
{
"root": "dist/",
"clean_urls": false,
"routes": {
"/**": "index.html"
}
}
以及我的公共存储库中的.htaccess
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
这是我的index.js
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById('root'))
class App extends Component {
render() {
return (
<IntlProvider locale={language} messages={messages}>
<div className="App">
<div className="App-content">
<div className="menu">
<Navbar handleLanguage={langValue => this.langChange(langValue)} language={language} />
</div>
<Main language={language}/>
</div>
</div>
</IntlProvider>
);
这是我的Main.jsx
export class Main extends React.Component {
render (){
return (
<Switch>
<Route exact path="/" render={(props) => <Home {...props} language={this.props.language}/>} ></Route>
<Route path='/login' component={Login} ></Route>
</Switch>
);
}
}
您的所有请求都应该转到index.html,这是您的应用程序的起点 将路由器设置为以下配置
<BrowserRouter basename="/directory-name">
<App/>
</BrowserRouter>
我不知道这是否只是一个让我的代码更正确的提示,但即使这样,服务器仍在寻找一个
login.html
。我试着在家里做一个按钮来按下历史道具,但我无法读取未定义的属性“push”我实际上把App.tsx放在render()返回的顶部,这也起到了作用。我首先想到将“homepage=”放在package.json中,但没有效果。
<BrowserRouter basename="/directory-name">
<App/>
</BrowserRouter>