create-react-app 显示“您需要启用 JavaScript 才能运行此应用程序”的错误。

Posted

技术标签:

【中文标题】create-react-app 显示“您需要启用 JavaScript 才能运行此应用程序”的错误。【英文标题】:create-react-app shows an error of "You need to enable JavaScript to run this app." 【发布时间】: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 之后定义所有路由,只需确保将上述代码放在路由处理程序之后 【参考方案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) 上为您的应用程序提供服务。

【讨论】:

以上是关于create-react-app 显示“您需要启用 JavaScript 才能运行此应用程序”的错误。的主要内容,如果未能解决你的问题,请参考以下文章

Eslint 错误导致 create-react-app 无法编译

我在控制台中收到错误“您需要启用 JavaScript 才能运行此应用程序”。反应

为 API Gateway REST API 资源启用 CORS

用create-react-app 创建myApp

create-react-app兼容ie9配置

firebase 托管的反应应用程序返回“您需要启用 JavaScript 才能运行此应用程序”