【问题标题】:create-react-app shows an error of "You need to enable JavaScript to run this app."create-react-app 显示“您需要启用 JavaScript 才能运行此应用程序”的错误。
【发布时间】:2018-02-18 15:49:33
【问题描述】:

我将 express 用于我的 API。我有一个名为 app 的文件夹和另一个名为 server 的文件夹。 app 是客户端应用,使用 create-react-app 作为样板,而 server 是 API 的 express.js 应用。

在服务器的app.js文件中,我写了

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

但是当我调用任何 API 端点时,我得到了

您需要启用 JavaScript 才能运行此应用。

在响应中。我糊涂了;怎么了?

【问题讨论】:

  • 您的浏览器似乎禁用了 javascript。对吗?
  • @Panther nope..
  • 确保先定义所有路线,然后再定义包罗万象的情况
  • @AmrAly 我做了,这是我的文件pastebin.com/PRhLaH0E
  • 不,您没有在 catch all case 之后定义所有路由,只需确保将上述代码放在路由处理程序之后

标签: javascript node.js reactjs express


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-12-16
    • 1970-01-01
    • 2021-02-06
    • 2022-11-30
    • 2021-10-05
    • 2020-04-02
    • 2020-05-09
    • 2022-06-14
    • 2018-10-21
    相关资源
    最近更新 更多