angularjs中的相对href路径与html5mode错误

relative href path goes wrong in angularjs with html5mode

本文关键字:html5mode 错误 路径 href 相对 angularjs      更新时间:2023-09-26

我使用AngularJS来处理打开了html5mode的url。我还使用gullow角度生成器来构建项目。

情况:

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="/" />

问题

当url是example.com/somepage时,index.css是从example.com/app/index.css获得的,但当url是example.com/somepage/somedeeperpage时,我刷新页面,index.css从example.com/somepage/app/index.css 获得

我希望能够在角度吞咽生成器中默认使用相对路径。

我必须在gulpfile中更改为base标记或index.css rel路径吗?

奇怪的是,相对路径在查找index.js 时运行良好

亲切问候

编辑:刚刚发现,如果我把标签放在注入样式之前,它就可以工作了。。。我的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-config来实现这一点

之前:

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

之后:

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