Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Reactjs React路由在本地工作,但在我的web主机上不工作_Reactjs_React Router_Ovh - Fatal编程技术网

Reactjs React路由在本地工作,但在我的web主机上不工作

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": {

我有一个React应用程序,它在我的本地应用程序上运行得很好,但我的路线在我的web主机(OVH web cloud)上不起作用

我查看了很多关于它的帖子,我试着按照他们的建议去做,但我觉得我遗漏了一些东西

如果我理解得很好,我就无法访问
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>