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 才能运行此应用程序”。反应