我有一堆包含图像背景的 .less 文件:
.header {
background-image:url(~/images/some_image.png);
}
在调试模式下,这些 .less 文件直接提供,但在发布模式下,它们作为包的一部分提供。捆绑 URL 和单个文件 URL 之间的路径深度并不总是相同,所以我不能只使用相对 URL。
无点 nuget 包的默认选项不解析应用程序相对路径。有没有办法让它做正确的事?
编辑:这种方法存在潜在的致命缺陷。该apppath.less
文件必须位于不一定已知的特定位置,这会创建一个鸡蛋场景。不过,它在某种程度上可能会有所帮助。
一种方法是使用@import
声明包含应用程序路径的变量的规则,如下所示:
@import "apppath.less"
如果您不能使用 .less 扩展名,您应该能够使用(less)
强制 .less 解释。
@import (less) "apppath.ashx"
apppath.less 不是静态文件,而是可以简单地用于Response.Write
回显应用程序路径,产生如下输出:
@app-path: "http://yourserver/app/path";
然后你会像这样使用它:
.header {
background-image:url("@{app-path}/images/some_image.png");
}