create-react-app收到错误"你需要启用JavaScript来运行这个应用程序."

Jen*_*Mok 13 javascript node.js express reactjs

我使用express for my api,我有一个名为app的文件夹,另一个名为server的文件夹.app是客户端应用程序,使用create-react-app作为样板,而服务器是api的express.js应用程序.

在我的服务器的app.js

app.get("*", function (req, res) {
    res.sendFile(path.resolve(__dirname, '../app/build/index.html'));
})
Run Code Online (Sandbox Code Playgroud)

然后我调用我__CODE__在响应中得到的任何api端点,我很困惑,出了什么问题?

tan*_*ton 1

在构建目录中,除了index.html 之外还有更多文件。您还有 build/js/main.buildNumber.js 和 build/css/main.buildNumber.css。因此,当您的前端向https://yourdomain.com/css/main.buildNumber.js发出请求时,它会错误地返回 index.html而不是main.js。

相反,您应该使用express.static 静态地提供构建文件夹的内容

    app.use('/', express.static(__dirname + '/'));

Run Code Online (Sandbox Code Playgroud)

或者您可以查看“服务”节点模块来托管您的应用程序。这将与反应路由器很好地配合。npm i -g serve然后cd build然后serve . --single -p 5000。这将在端口 5000 (http://localhost:5000) 上为您的应用程序提供服务。