我正在开发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/

10-12 07:38