我在一个项目中写了2个ng-app
,一个是user
,另一个是admin
。
要从 url 中删除 #
,我在两个 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);
}
]);
服务器.js
app.use('/', express.static('app', { redirect: false }));
app.get('/*', function(req, res){
res.sendFile(__dirname + '/app/index.html');
});
如果路由中有额外的参数,我会收到以下错误
Uncaught SyntaxError: Unexpected token <
当我的 url 是上面的错误
http://localhost:8080/properties/
http://localhost:8080/properties/something
http://localhost:8080/pages/
http://localhost:8080/pages/editpages
如果在没有最后一个 /
的情况下使用 url,这会很好地工作,即
http://localhost:8080/properties
http://localhost:8080/pages
我也提到过这个问题,但无法解决问题
最佳答案
找到解决方案
<base href="/">
的位置就在</head>
之前之前有所有脚本和链接标签。添加 <base href="/">
后标题标签后问题得到解决
关于javascript - 子文件夹的 Angular Route 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40863547/