Angularjs CSS文件路径无法使用angular ng view正确解析
我有一个角度应用程序设置与ng视图。我有1层和2层深的路线,例如:Angularjs CSS文件路径无法使用angular ng view正确解析,angularjs,node.js,routing,grunt-wiredep,Angularjs,Node.js,Routing,Grunt Wiredep,我有一个角度应用程序设置与ng视图。我有1层和2层深的路线,例如: .when('/sample', { templateUrl: 'views/sample.html', controller: 'SampleCtrl' }) .when('/sample/:id', { templateUrl: 'views/sample.html', controller: 'SampleCtrl' }) 我正在使用html5模式删除scotch路由,因此
.when('/sample', {
templateUrl: 'views/sample.html',
controller: 'SampleCtrl'
})
.when('/sample/:id', {
templateUrl: 'views/sample.html',
controller: 'SampleCtrl'
})
我正在使用html5模式删除scotch路由,因此我的路由呈现为“localhost:9000/sample”,而不是“localhost:9000#/sample”
我还使用一个节点modrewrite服务器来启用html5模式,这样我就可以使用connect modrewrite npm模块和以下grunt配置接受指向url中深层链接的直接链接(例如localhost:9000/sample/id):
middleware: function (connect) {
return [
modRewrite(['^[^\\.]*$ /index.html [L]']),
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect.static(appConfig.app)
];
}
我在头文件中定义了css文件,例如:
<link rel="stylesheet" href="styles/main.css">
解决我的javascript依赖关系没有问题,它使用相同类型的相对路径,只是css路径。我可以通过在样式前面加一个斜杠(href=“/styles/main.css”)来解决这个问题,但我不希望这样做,因为这会限制我的应用程序的部署方式,而且wiredep默认情况下也不是安装css bower依赖项的方式。是否有一些视图友好的方法来确保我的css文件路径能够正确解析,而不管我在哪条路径上 我一直没有得到答案,所以我选择了在css文件前面加斜杠的方法,效果很好。如果其他人遇到这个问题并需要它,这就是我对gruntfilewiredep命令所做的修改,使其在css导入之前加上斜杠
wiredep: {
app: {
fileTypes: {
html: {
replace: {
css: '<link rel="stylesheet" href="/{{filePath}}" />'
}
}
}
}
wiredep:{
应用程序:{
文件类型:{
html:{
替换:{
css:'
}
}
}
}
wiredep: {
app: {
fileTypes: {
html: {
replace: {
css: '<link rel="stylesheet" href="/{{filePath}}" />'
}
}
}
}