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

1 に答える 1

0

CssRewriteUrlTransformを使用します。

ドキュメントから:

バンドリング後もアセットが検出されるように、絶対 URL に書き換えます。

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