Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why won't React production build run on the browser?

Tags:

reactjs

I'm trying to build my react app using react's build tool. When I try to "npm start", the app works fine.

npm start 

On http://localhost:3000 => I can access the application.

enter image description here

But when I build the application and try to access "index.html" file on the build folder, it doesn't work and I encounter with a white blank screen.

npm run build 

http://myreact-app/build/index.html => White blank screen.

This is the build folder which has been created after run npm run build.

enter image description here

And this is the index.html

<!DOCTYPE html> <html lang="en">   <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">     <title>React App</title>     <link href="/static/css/main.9a0fe4f1.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.46d8cd76.js"></script>   </body> </html> 

Am I doing something wrong? Can't I access the built index.html file on my apache web server?

like image 523
amone Avatar asked Jun 05 '17 14:06

amone


2 Answers

Probably you've not noticed yet but I don't think your html file is able to import css and script files correctly. When I look at your file structure, I see the everything about build is under the build folder. But in your html file, there are slashes ("/") before the file paths. That's why browser is looking for those files under the parent of the "build". Try to remove slashes.

<!DOCTYPE html> <html lang="en">     <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">       <title>React App</title>       <style></style>       <link href="static/css/main.65027555.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.316f1156.js"></script>     </body> </html> 
like image 50
aravvn Avatar answered Oct 23 '22 05:10

aravvn


The above problem can be overcome if you add

"homepage":".", 

in your package.json. This is not official but a good hack to follow.

https://github.com/facebookincubator/create-react-app/issues/1487

like image 25
Manas Gond Avatar answered Oct 23 '22 05:10

Manas Gond