css中的url用angular重写

url in css get rewritten with angular

本文关键字:angular 重写 url 中的 css      更新时间:2023-09-26

在angular中,使用svgs设置基集和html5mode存在问题。它导致所有类似filter: url(#url)的东西都被重写为filter: url(/base/#url)

https://github.com/angular/angular.js/issues/8934

我试过禁用html5模式并删除基础,但每当角度引导时,它仍然会重写url。

当angular加载时,如果svg存在,它将显示正确的剪辑/过滤器,但一旦angular初始化,它就会消失。有人知道变通办法吗?我尝试过在定位之前使用完整的文件路径,以及禁用基本路径。

我所说的有基数是指<base href='/'>,其工作正常。

对这个问题的进一步检查表明,当角度初始化时,它将滤波器转换为svg

角度前

<svg>
  <defs>
    <filter>
    </filter>
  </defs>
  <g> 
    <path>
  </g>
</svg>

引导后

<svg>
  <defs>
    <svg class='filter'> 
      <path>
    </svg>
  </defs>
  <g> 
   <path>
  </g>
</svg>

我认为您可能在索引文件的头中设置了错误的基本属性。

请务必检查所有相关链接、图像、脚本等。Angular要求您在主html的头部指定url基文件(),除非将html5Mode.requireBase设置为传递给的html5Mode定义对象中为false$locationProvider.html5Mode()。这样,相对URL将始终为解析为这个基本url,即使文档的初始url是不同的

文档

这最终是因为我们有一个名为filter的指令。。。

我们犯了一个严重的错误!