3

app is working fine in node server but i am getting blank page in Apache server even though i used absolute path.

Here is the index.html code

<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="/manifest.json">
  <link rel="shortcut icon" href="/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>

Here are the screen shots.. enter image description here

enter image description here

3 Answers 3

4

I am using the react router 4. so when i used Router it create problems and not working with absolute paths. instead of Router using BrowserRouter and used basename for folder shop where i copied the build of my project.

import { BrowserRouter, Route, Switch } from '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>

and in package.json file "homepage": "/shop" to create paths.

Sign up to request clarification or add additional context in comments.

1 Comment

This worked. The key was to set the "basename", which is essentially the base directory where the react project was deployed.
2

I was not able to get my app using React Router v4 to work on Apache hosting, even after trying the steps mentioned by @Abdul Moiz.

I found this answer : https://stackoverflow.com/a/50657757/7867822

Basically changing <BrowserRouter/> to <HashRouter/> worked for me.

Comments

0

If the website is hosted on http://namweb.com/NamFdr
Add the Folder name "NamFdr" in the below config :

|+> Add in package.json

"homepage": "/NamFdr",

|+> Add Router basename config in index.js

ReactDOM.render(
    <BrowserRouter basename='/blocal'>
        <App />
    </BrowserRouter>,
    document.getElementById('root')
)

[Or] Add Router basename config in app.js

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

-------------------------

<BrowserRouter basename="/NamFdr/">
    <Switch>
        <Route exact path="/" component={App} />


    </Switch>
</BrowserRouter>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.