我在一个项目中写了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;
我的网址
时出现上述错误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
我也提到了这个问题,但无法解决问题
答案 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'));