如何在编译的LESS css文件中获得正确的相对路径?

时间:2012-10-13 18:13:56

标签: css less

我遇到了LESS在我编译的文件中破坏相对URL的问题。例如,我有;

├── style.less
├── style.css
├── assets
│   ├── img
│   │   └──  bg.png
│   ├── less
│   │   └──  included.less

Style.less import included.less包含以下行;

body {background: url(../img/wall-texture.png);}

但是style.css中的输出变为

body {background: url(assets/less/assets/less/../img/wall-texture.png);}

这里发生了什么,我怎样才能解决这个问题,以便在编译后我的路径保持正确?我意识到也许我的相对路径在included.less中需要进行调整,这很好,但是目前,在“资产/更少”加倍的情况下,它使得在保持合理的文件夹结构的同时获得正确的路径变得非常复杂。除了我使用git子模块包含不同的LESS项目,所以我真的不想更改较少文件或文件夹结构中的代码,我只想强迫LESS正确编译。 (我已经尝试了所有可以找到的Windows编译器,它们的行为都相同。)

任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:2)

可能有一个解决方案可以解决您的编译问题。如果没有,一个可能的解决方案( 要求您更改LESS文件)是插入路径。这样,编译器可能会将其单独添加到其中:

body {background: url(~"../img/wall-texture.png");}

答案 1 :(得分:1)

看看https://github.com/marklagendijk/WinLess/issues/12 它似乎与您正在使用的版本完全相关(1.5.3)。我建议更新到最新的1.8.0版本。

在winless的路上,有几个相对路径的问题。但其中大多数似乎都是固定的。另请参阅https://github.com/marklagendijk/WinLess/issues/search?q=path

请注意,less编译器的默认行为是实际保留相对路径的。