3 votes

Pourquoi, lorsque je lance mon build react sur Apache, une page blanche apparaît... ?

L'application fonctionne bien sur le serveur node mais j'obtiens une page blanche sur le serveur Apache même si j'ai utilisé un chemin absolu.

Voici le code de l'index.html

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
  <meta name="theme-color" content="#000000">
  <link rel="manifest" href="stackoverflow.com/manifest.json">
  <link rel="shortcut icon" href="stackoverflow.com/favicon.ico">
  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
  <title>React App</title>
  <link href="./static/css/main.0778317d.css" rel="stylesheet">
</head>

<body>
  <noscript>You need to enable JavaScript to run this app.</noscript>
  <div id="root"></div>
  <script type="text/javascript" src="./static/js/main.1b4d826e.js"></script>
</body>

Voici les captures d'écran.. enter image description here

enter image description here

4voto

Abdul Moiz Points 76

J'utilise le routeur de réaction 4 . donc quand j'ai utilisé Routeur cela crée des problèmes et ne fonctionne pas avec les chemins absolus. au lieu de Routeur en utilisant BrowserRouter et utilisé nom de base pour le dossier shop où j'ai copié le build de mon projet.

import { BrowserRouter, Route, Switch } de 'react-router-dom' ;

<BrowserRouter history={history} basename="/shop/">
      <div>
        <Switch>
          <Route exact path="/" component={App} />
          <Route path="/cart" component={Cart} />
          <PublicRoute path="/login" component={LoginPage} />
          <PrivateRoute path="/dashboard" component={DashBoardPage} />
          <PrivateRoute path="/checkout" component={checkOut} />
          <PrivateRoute path="/favourite" component={favourite} />
          <PrivateRoute
            path="/payment_Information"
            component={PaymentInformation}
          />
          <Route path="/product_details/:pid" component={ProductDeatils} />
          <Route path="*" compononent="NotFound" />
        </Switch>
      </div>
    </BrowserRouter>

et en paquet.json fichier "homepage" : "/shop" pour créer des chemins.

2voto

Anurag Srivastava Points 12210

Je n'ai pas réussi à faire fonctionner mon application utilisant React Router v4 sur un hébergement Apache, même après avoir essayé les étapes mentionnées par @Abdul Moiz.

J'ai trouvé cette réponse : https://stackoverflow.com/a/50657757/7867822

En gros, changer <BrowserRouter/> a <HashRouter/> a fonctionné pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X