我知道还有其他问题,但都没有我需要的答案。
只需要能够在 MVC 页面中包含的某些 LESS 中强制使用绝对路径,以便正确获取图像(等)。
[websiteroot]
----Content
--------img
------------<image files>
--------bootstrap
------------<bootstrap files>
--------site.LESS
--------Site_styles.LESS
----Views
--------Shared
------------_Layout.cshtml
它甚至不在一个包中,它只是直接包含在 _Layout.cshtml 中作为
@Styles.Render("~/Content/Site_styles.less");
在 Site_styles.less 我有
.carousel-image-1
{
width: 100%;
background: url('img/banner1.jpg') no-repeat;
}
但我不能让它成为绝对的,即
"~/Content/img/banner1.jpg"
它呈现为
background: url('/Content/img/sodexo_banner1.jpg')
以防万一,其他 LESS [bootstrap etc] 像这样打包
BundleTable.EnableOptimizations = false;
bundles.UseCdn = true;
var cssTransformer = new CssTransformer();
var jsTransformer = new JsTransformer();
var nullOrderer = new NullOrderer();
var cssBundle = new StyleBundle("~/Content/css");
cssBundle.Include("~/Content/Site.less");
cssBundle.Include("~/Content/bootstrap/bootstrap.less");
//cssBundle.Include("~/Content/Site_variables.less");
cssBundle.Transforms.Add(cssTransformer);
cssBundle.Orderer = nullOrderer;
bundles.Add(cssBundle);
最佳答案
来自文档:
Rewrites urls to be absolute so assets will still be found after bundling.
示例
bundles.Add(new StyleBundle("~/Content/css")
.Include("~/Content/Site.less")
.Include("~/Content/bootstrap/bootstrap.less", new CssRewriteUrlTransform()));
关于css - 带有 ASP.net MVC 的 LESS CSS 中资源的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26462697/