首页 > 解决方案 > 使用 express 应用程序(生产)构建时不渲染材质 UI 组件

问题描述

我正在使用 React 和 Material UI 构建一个前端,当我运行 npm start 时一切都运行顺利。

我还有一个 express 应用程序,它为这个前端的生产构建提供服务(我运行 npm run-script build 并获取 prod 构建并将其放置在我的 express 应用程序的目标目标中)。当我在本地运行这个 express 应用程序(使用 node app.js)时,一切都在那里渲染和运行顺利。

现在,当我进入我用来部署的 Amazon Lightsail linux 实例,并使用 node app.js 在那里运行 express 应用程序时,应用程序运行,但所有 material-ui 组件根本不渲染。我看到的只是背景。

初步调查使我相信在 ReactDOM.render 中,我正在渲染的 UI 需要包装在 MuiThemeProvider 中。试过这个无济于事。它使我提出了几个问题。

CSS

在我的生产构建(build->static->css)中,我只有一个 css 文件,它只列出了背景。这对于为什么我在部署时至少可以看到背景是有道理的。我的问题是,我在我的 jsx 中大量使用 makeStyles 和 withStyles 来创建我的大部分课程。在我的生产版本中,这些应该被编译成 css 吗?

我的另一个问题是它是否应该被编译成 css,为什么当我在端口 9000 上本地运行 express 应用程序时,我能够看到我所有的材料 ui 组件,但当我将它提供到我的静态端口时只能看到背景在光帆上?这是相同的构建,所以我几乎很难相信我的构建有问题。

有没有人经历过这样的事情?任何有关如何调试的提示或建议将不胜感激,我已经被困了很长时间。

标签: reactjsexpressmaterial-uiamazon-lightsail

解决方案


推荐阅读