【发布时间】:2016-12-09 03:45:10
【问题描述】:
我有一个简单的快递服务器,看起来像这样:
Epxress 应用程序:
var express = require('express');
var compression = require('compression');
var path = require('path');
var cors = require('cors');
var router = express.Router();
var app = express();
app.use('/bundle', express.static(path.join(__dirname, '/bundle')));
app.enable('trust proxy');
app.use(compression());
app.get('*', function(req, res) {
res.header('Cache-Control', "max-age=60, must-revalidate, private");
res.sendFile( path.join(__dirname, 'index.html') );
});
var server = app.listen(process.env.PORT || 5000, function () {
var host = server.address().address;
var port = server.address().port;
console.log(`Example app listening at http://%s:%s`, host, port);
});
还有简单的html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>React Router test</title>
</head>
<body>
<div id="root"></div>
<script src="bundle.js"></script>
</body>
</html>
在 bundle.js 内部,我有带有客户端路由的 ReactJS 应用程序:
render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="about" component={About} />
<Route path="about2" component={About2} />
<Route path="about3" component={About3} />
<Route path="*" component={NoMatch} />
</Route>
<Route path="*" component={NoMatch} />
</Router>
), document.getElementById('root'));
每当我尝试导航到 domain:port/(路由器支持此路由)时,一切正常。 但是当我尝试导航到更复杂的 URL 时,例如 domain:port///.. 等,我在浏览器中遇到错误:
bundle.js:1 Uncaught SyntaxError: Unexpected token <
看起来不像使用 index.html 从静态服务器响应发送 bundle.js 而在 bundle.js 内部有 html 标记。
我该如何解决这个问题?
谢谢!
【问题讨论】:
-
试试
-
@Utro 为我工作。谢谢!
-
@KokovinVladislav 谢谢,它适用于我的情况
标签: javascript node.js express reactjs react-router