问题
我已经成功地为我的React应用程序的index.html文件提供了服务,但是 index.js
用我的第一个React组件取代了html文件中的 <root>
并没有在 ReactDOM.render
上触发 . 如何启动 index.js
文件?如果我对React应用程序服务的理解在某些方面存在偏差,我将非常感谢您的澄清 .
文件夹结构
-
/ - 包含所有服务器端文件,包括
server.js
-
/ client / - 包含所有React文件
-
/ client / build / - 包含所有 生产环境 就绪的客户端文件
-
/ client / build /
index.html
-
/ client / build / static / js /
main.[hash].js
- 似乎是index.js
的缩小版本,其中包含我的React应用程序的ReactDOM.render
当前部署
- 我正在使用Facebook的create-react-app作为/ client /目录,包括npm run build自动填充/ client / build /
文件片段
// server.js
let app = express();
app.use(express.static(path.join(__dirname, '../client/public')));
这会成功加载create-react-app提供的默认index.html
// index.html
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
</body>
上面的代码部分可能/可能没用,但它是create-react-app附带的默认html文件 . 我是否需要使用引用缩小的 index.js
文件的脚本标记替换noscript标记?我试过了,并没有改变,但也许是因为不正确的相对路径制作 .
1 回答
通过试用/错误尝试了许多不同的东西后,解决方案非常简单:
在静态调用中提供/ client / build文件夹,如下所示: