使用html5mode在angularjs中出现相对href路径错误

时间:2015-03-02 10:16:30

标签: javascript angularjs html5

我正在使用AngularJS来处理打开html5mode的网址。我也在使用gulp-angular生成器来构建项目。

情况:

index.js

   $locationProvider
        .html5Mode(true);

的index.html

<!-- build:css({.tmp,src}) styles/app.css -->
<!-- inject:css -->
<link rel="stylesheet" href="app/index.css">
<!-- endinject -->
<!-- endbuild -->
<base href="/" />

问题

当网址为example.com/somepage时,index.css来自example.com/app/index.css,但当网址为example.com/somepage/somedeeperpage时,我刷新了网页,则index.css来自example.com/somepage/app/index.css

我希望能够在angular-gulp生成器中默认使用相对路径。

我是否必须在gulpfile中更改为基本标记或index.css rel路径?

奇怪的是,相对路径可以很好地找到index.js

亲切的问候

1 个答案:

答案 0 :(得分:5)

编辑:刚才发现,如果我将标签放在之前注入样式就行了......我的index.html现在看起来像这样:

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <base href="/">
    <!-- build:css({.tmp/serve,src}) styles/app.css -->
    <!-- inject:css -->
    <!-- endinject -->
    <!-- endbuild -->
</head>

上一个回答:

有同样的问题,通过添加我的index.html文件并更改gulp / inject.js中的gulp-inject配置来完成这项工作:

之前:

var injectOptions = {
  ignorePath: [options.src, options.tmp + '/serve'],
  addRootSlash: false
};

之后:

var injectOptions = {
  ignorePath: [options.src, options.tmp + '/serve']
};