Angularjs CSS文件路径无法使用angular ng view正确解析

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路由,因此

我有一个角度应用程序设置与ng视图。我有1层和2层深的路线,例如:

  .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}}" />'
        }
      }
    }
  }