我正在开发Express应用程序,我想捕获所有路由并将用户重定向到/public/app/index.html
:
app.all('/*', function (req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendFile('/public/app/index.html', { root: __dirname });
});
但是当我运行服务器时,这会显示在屏幕上:
================================================== -->
在控制台上出现以下错误:
jquery.min.js:1 Uncaught SyntaxError: Unexpected token <
hover.zoom.js:1 Uncaught SyntaxError: Unexpected token <
hover.zoom.conf.js:1 Uncaught SyntaxError: Unexpected token <
allJS.min.js:1 Uncaught SyntaxError: Unexpected token <
任何的想法?
最佳答案
相关:SyntaxError: expected expression, got '<'
发生的事情是您对应用程序发出的每个index.html
请求都获得了GET
。
您可以通过检查routes
文件中是否请求文件名来解决此问题。
注意:在此示例。我使用app-root-path模块获取特定文件的路径
var appRoot = require('app-root-path');
...
app.get('/*', function(req, res) {
var filename = req.originalUrl;
//if it has a dot in its name return the original file
if (/(\.)/g.test(req.originalUrl)){
res.sendfile(appRoot + '/public/' + filename);
}
关于javascript - 在Express.js中使用Angular 1.5 Component路由器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37353189/