javascript - Create-React-App 在 WHM/cPanel 服务器上显示空白页面
问题描述
我正在尝试将 React 应用程序部署到生产环境中,但我似乎遇到了一个问题,我目前研究的任何在线答案都无法解决。
我创建了一个带有简单登录/注册系统的应用程序,并使用 redux+saga 来实现。
我运行后:
npm run-script build
我收到一条消息,例如构建文件夹已准备好部署(到目前为止一切都很好)。将文件上传到 cPanel 中的“public_html”文件夹后,我得到一个空白页面,其中包含 React App 作为标题并加载了网站图标。
到目前为止我已经尝试解决这个问题:
- 将主页设置为“。” 在 package.json 中(不走运,检查网络选项卡显示所有文件都以 200 状态加载,OK)
- 更新到我的依赖项的最新版本
- 安装节点并尝试“服务”构建(我真的不明白这部分)
此外,我在控制台中有一个错误(可能与 Web 应用程序完全无关,因为我在配置中有 redux 开发工具,所以没有显示任何内容):
控制台日志错误:
我非常渴望找到解决方案。感谢您的贡献和时间。
商店.js:
import { createBrowserHistory } from 'history';
import { applyMiddleware, compose, createStore } from 'redux';
import { routerMiddleware } from 'connected-react-router'
import createSagaMiddleware from 'redux-saga';
import rootReducer from './index';
import rootSaga from './sagas';
const defaultState = {};
export const history = createBrowserHistory()
const sagaMiddleware = createSagaMiddleware()
const store = createStore(
rootReducer(history),
defaultState,
compose(
applyMiddleware(
routerMiddleware(history),
sagaMiddleware
),
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
)
);
sagaMiddleware.run(rootSaga);
export default store;
解决方案
问题在于撰写功能。对于开发,它可以工作,但对于生产模式,您需要删除 devtools。
尝试不同的 compose 方法进行开发和生产。下面给出的示例代码片段。
const devTools = process.env.NODE_ENV === 'development' ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__() : null
const store = createStore(
rootReducer,
compose(applyMiddleware(thunk), devTools)
)
您也可以尝试使用库“ redux-devtools-extension ”来编写。
推荐阅读
- html - "Linking to another page" is over simplifying my question
- php - Laravel - overtrue likeable system not working
- python - Tensorflow/Keras/BERT 多类文本分类准确度
- python - 嵌套数据类的 Json 序列化
- javascript - input.value 和 addEventListener 的问题
- r - 如何根据时间步长识别连续观察?
- r - 引用传递给函数的参数
- powerbi - Self-Service BI and Compliance
- android - 首次构建空白 Android 应用程序时连接到谷歌失败
- javascript - 为什么我们在 JavaScript 的 EventListener 中调用函数时不使用 ()