子文件夹的角度路径给出错误

时间:2016-11-29 10:31:30

标签: javascript angularjs node.js ngroute angularjs-ng-route

我在一个项目中写了2 ng-app,一个是user,另一个是admin。 要从网址中删除#我在app.config函数

中使用了以下代码
$locationProvider.html5Mode(true);

和app / index.html

<base href="/">

和app / admin / index.html

<base href="/admin/">

用户app.js

app.config(['$routeProvider','$locationProvider',
    function($routeProvider, $locationProvider) {
        $routeProvider.
        when('/properties', {
            templateUrl: 'views/modules/properties.html'
        })
        .when('/pages', {
            templateUrl: 'views/pages/pages.html'
        })
        .when('pages/editpages', {
            templateUrl: 'views/pages/editPages.html',
            controller: 'editPagesController',
        });

        $locationProvider.html5Mode(true);
    }
]);

server.js

app.use('/', express.static('app', { redirect: false }));

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

如果路线中有额外的参数,我会收到以下错误

  

未捕获的SyntaxError:意外的标记&lt;

enter image description here

我的网址

时出现上述错误
http://localhost:8080/properties/
http://localhost:8080/properties/something
http://localhost:8080/pages/
http://localhost:8080/pages/editpages   

如果在没有最后/的情况下使用网址,则可以正常工作。

http://localhost:8080/properties
http://localhost:8080/pages

我也提到了这个问题,但无法解决问题

Node / Angular app Uncaught SyntaxError: Unexpected token <

How to use multiple index pages in angular

2 个答案:

答案 0 :(得分:2)

找到解决方案

<base href="/">的展示位于</head>之前,之前有所有脚本和链接标记。在标题标记之后添加<base href="/">后问题已解决

答案 1 :(得分:1)

问题在于快速中间件,例如

app.use(express.static('./build/'));
// Any invalid calls for templateUrls are under app/* and should return 404
app.use('/app/*', function(req, res, next) {
  four0four.send404(req, res);
});
// Any deep link calls should return index.html
app.use('/*', express.static('./build/index.html'));