我正在构建一个使用React的Express应用程序。我启动我的服务器,转到localhost,我看到一个空白页面,当我检查chrome上的开发工具时,它会显示我的js文件是纯HTML的。为什么会这样呢?
这是我的server.js
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
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
<body>
<div id="main-app"></div>
</body>
<script src="public/assets/dist/javascripts/app.js"></script>这就是我在开发工具上看到的:图像
发布于 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中可能会修复它。
app.use(express.static(__dirname + '/public'));而不是
app.get('*', function(req, res) {
res.sendFile(__dirname + '/public/views/index.html');
});https://stackoverflow.com/questions/35494916
复制相似问题