【问题标题】:React app is not rendering at all when loading HTML page that contains it加载包含它的 HTML 页面时,React 应用程序根本不呈现
【发布时间】:2019-08-01 03:28:19
【问题描述】:

我有一个使用 webpack 构建的小型 react 应用程序,它编译为 /dist/bundle.js。然后我有一个快速服务器来提供引用我的 bundle.js 的 HTML 文件。这样,当我连接到我的 express 服务器时,它将包含我的 React 应用程序。 express 提供的 HTML 文件如下:

<!DOCTYPE html>
<html>
  <head>
    <title>The Minimal React Webpack Babel Setup</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="./dist/bundle.js"></script>
  </body>
</html>

但是当在本地运行并在浏览器中打开它时,什么都没有显示。检查源代码时,我可以看到 HTML 文件在那里,但页面上没有显示任何内容。

我的 server.js 如下:

var express = require('express');
var app = express();
var path = require('path');

app.get('/', function(req, res) {
  res.sendFile(path.join(__dirname + '/index.html'));
});

app.listen(8080);

为什么我看不到我的 React 应用程序?感谢您的帮助!

检查页面时,我看到以下内容(无法真正复制和粘贴,因此添加了屏幕截图):

【问题讨论】:

  • 只需运行控制台并检查您的包是否已加载。
  • @emix 我添加了我在控制台中看到的内容。它只是 HTML,它引用了包但似乎没有加载它?
  • 实际上等等,在控制台中我看到了GET http://localhost:8080/dist/bundle.js net::ERR_ABORTED 404 (Not Found),所以也许我必须将包托管在一个快速端点上并以这种方式从 html 中引用它?
  • 这是你的答案,没有捆绑包。

标签: javascript node.js reactjs express webpack


【解决方案1】:

您需要包含对服务器上静态资产的访问权限。

app.use(express.static('dist'));// put the correct folder here

https://expressjs.com/en/starter/static-files.html

【讨论】:

猜你喜欢
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2020-01-19
  • 2016-10-04
相关资源
最近更新 更多