First of all, my app works well on localhost. Every component and URL work on the server except for NotFound (404) page.
<Switch>
<Route
exact
path={'/'}
render={() => (
{/*something here*/}
)} />
<Route
exact
path={'/secondPage'}
render={() => (
{/*something here*/}
)} />
<Route
path={'*'}
render={() => (
<NotFound />
)} />
</Switch>
Also, I tried just <Route render={() => ( <NotFound /> )} />
Index.js:
ReactDOM.render(
<BrowserRouter basename={process.env.PUBLIC_URL}><App /></BrowserRouter>,
document.getElementById('root')
)
I tried to deploy the react app like deploying to GitHub pages. Here is my package.json
{
"homepage": "https://mywebsite.com/react-app/",
"dependencies": {
"escape-string-regexp": "^1.0.5",
"lodash": "^4.17.10",
"prop-types": "^15.6.1",
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-router-dom": "^4.3.1",
"sort-by": "^1.2.0"
},
"devDependencies": {
"gh-pages": "^1.2.0",
"react-scripts": "1.1.4"
},
"scripts": {
"predeploy": "npm run build",
"deploy": "gh-pages -d build",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
What am I missing?