首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速应用程序没有呈现我的反应组件

快速应用程序没有呈现我的反应组件
EN

Stack Overflow用户
提问于 2016-02-19 00:01:40
回答 1查看 2.4K关注 0票数 1

我正在构建一个使用React的Express应用程序。我启动我的服务器,转到localhost,我看到一个空白页面,当我检查chrome上的开发工具时,它会显示我的js文件是纯HTML的。为什么会这样呢?

这是我的server.js

代码语言:javascript
复制
var express = require('express');

var app = express();
var port = process.env.NODE_ENV || 3000;

app.get('*', function(req, res) {
    res.sendFile(__dirname + '/public/views/index.html');
});

app.listen(port, function() {
    console.log('Listening to http://localhost:' + port);
});

这是我的app.js

代码语言:javascript
复制
var React = require('react'),
    ReactDOM = require('react-dom');

var App = React.createClass({displayName: "App",
    render () {
        return (
            React.createElement("h1", null, "Hello World!!!!!")
        )
    }
});

ReactDOM.render(React.createElement(App, null), document.getElementById('main-app'));

我的index.html

代码语言:javascript
复制
<body>
    <div id="main-app"></div>
</body>
<script src="public/assets/dist/javascripts/app.js"></script>

这就是我在开发工具上看到的:图像

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 00:07:55

问题是,无论您向服务器请求什么文件,都会返回index.html

所以当你去http://localhost:3000/的时候,你得到了index.html

问题是,您的public/assets/dist/javascripts/app.js请求index.html,但是您仍然返回index.html,就像返回app.js一样。

您需要更新您的路由,以便它返回所请求的文件。

我认为将这个添加到您的server.js中可能会修复它。

代码语言:javascript
复制
app.use(express.static(__dirname + '/public'));

而不是

代码语言:javascript
复制
app.get('*', function(req, res) {
    res.sendFile(__dirname + '/public/views/index.html');
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35494916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档