【问题标题】:Deployed Build Reactjs Project shows white screen已部署的 Build Reactjs 项目显示白屏
【发布时间】:2019-11-04 00:31:11
【问题描述】:

我有一个 react 项目,它在本地服务器中运行良好,但是当我尝试将其上传到生产服务器时,它显示白屏/空白屏幕,而控制台中没有任何错误。

我所做的是运行“npm run build”,然后将在构建项目上编译的文件上传到我的生产实例上。我还修改了package.json,把"homepage":"http://50.31.112.112/new_vehicle_management"

我做错了什么?

这是路线的代码

import React from 'react';
import './App.css';
import { BrowserRouter as Router, Route } from 'react-router-dom';

import {Login} from './components/Login';
import {Menu} from './components/Menu';
import {NewProcess} from './components/NewProcess';
import {ContinueProcess} from './components/ContinueProcess';
import {SearchProcess} from './components/SearchProcess';
import {CreateProcess} from './components/CreateProcess';
import {ProcessActivity} from './components/ProcessActivity';
import {ProcessContinueActivity} from 
'./components/ProcessContinueActivity';
import {ProceedProcess} from './components/ProceedProcess';

function App() {
  return (
    <div className="App">
      <Router>
        <Route path="/login" component={Login}/>
        <Route path="/menu" component={Menu}/>
        <Route path="/newprocess" component={NewProcess}/>
        <Route path="/continueprocess" component={ContinueProcess}/>
        <Route path="/searchprocess" component={SearchProcess}/>
        <Route path="/createprocess" component={CreateProcess}/>
        <Route path="/processactivity" component={ProcessActivity}/>
        <Route path="/processcontinueactivity" component= 
         {ProcessContinueActivity}/>
        <Route path="/proceedprocess" component={ProceedProcess}/>
       </Router>
     </div>
   );
 }



export default App;

【问题讨论】:

  • 试试"homepage":"/new_vehicle_management"
  • 你用的是 CRA 还是 webpack?
  • 我试过“主页”:“/new_vehicle_management”它仍然显示白屏。我用过 CRA。
  • 我看到你的 html 有 2 个 &lt;div id="root" /&gt; 元素,可能不是原因,但我认为你想解决这个问题。您可以将您的路由器代码添加到您的帖子中吗?
  • 我已经删除了重复的
    。并且还在帖子中添加了路由的代码。

标签: reactjs


【解决方案1】:

您可能需要将basename="/new_vehicle_management" 添加到您的路由器。

<Router basename="/new_vehicle_management" />

当您在 localhost 中运行时,您的路由位于服务器根目录中(即:localhost/login),但由于您在更深层次托管网站,您需要指定基本名称,否则路径名将永远不会匹配任何路由。

另外不要忘记在路径/中设置一些东西,否则你的网站在用户访问时不会呈现任何内容。

<Route path="/" component={YourLandingPageComponent}/>

编辑:basename 在 react-router v4 中有效,否则您可能需要在每个路由中设置 basename。

更多详情请见https://reacttraining.com/react-router/web/api/BrowserRouter/basename-string

【讨论】:

  • 我会试试这个。谢谢!
  • 哦,别忘了从 package.json 中删除你的主页参数。不是很推荐,因为它会弄乱您的文件导入。在你的情况下,你只需要它来路由,所以我建议你只使用 basename 属性。
  • 非常感谢,我现在可以查看屏幕了。 :)
猜你喜欢
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 2023-01-01
  • 2022-08-22
  • 1970-01-01
相关资源
最近更新 更多