0

我知道还有其他问题,但没有我需要的答案。

只需要能够在 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 等]这样捆绑在一起

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);
4

1 回答 1

0

使用CssRewriteUrlTransform

来自文档:

将网址重写为绝对网址,以便在捆绑后仍能找到资产。

例子

bundles.Add(new StyleBundle("~/Content/css")
        .Include("~/Content/Site.less")
        .Include("~/Content/bootstrap/bootstrap.less", new CssRewriteUrlTransform()));
于 2014-10-20T10:25:01.577 回答