SORU
6 Temmuz 2012, Cuma


StyleBundle çözümleme MVC4 görüntüleri

Benim sorum şuna benzer:

ASP.NET MVC 4 Minification & Background Images

Bunun dışında yapabileceğim bir şey varsa Eğer MVC kendi donatılacak ile sopa istiyorum. Beyin bir çarpışma doğru desen jQuery UI gibi tek başına css ve görüntü kümeleri gibi bu tarz demetleri belirtmek için ne olduğunu anlamaya çalışarak geçiriyorum.

styles.css gibi temel CSS içeren /Content/css/ tipik MVC site BİR YAPISI VAR. Css klasörünün içinde ben de CSS dosyasını içeren /jquery-ui gibi ALT Artı /images bir klasör var. JQuery UI CSS resim yolları klasörüne göre ve onlarla uğraşmak istemiyorum.

Anlıyorum o zaman ben belirt StyleBundle ihtiyacım belirtmek için bir sanal yol değil de maç gerçek bir içerik yolu (çünkü sanıyorum görmezden gelerek yollarına İçerik) IIS o zaman denemek çözüm yolu olarak fiziksel bir dosya. Belirtme ediyorum:

bundles.Add(new StyleBundle("~/Content/styles/jquery-ui")
       .Include("~/Content/css/jquery-ui/*.css"));

kullanılarak işlenmiş:

@Styles.Render("~/Content/styles/jquery-ui")

İstek için dışarı görebiliyorum:

http://localhost/MySite/Content/styles/jquery-ui?v=nL_6HPFtzoqrts9nwrtjq0VQFYnhMjY5EopXsK8cxmg1

Bu doğru, minified CSS yanıt veriyor. Ama sonra tarayıcı olarak nispeten daha bağlı bir görüntü için bir istek gönderir:

http://localhost/MySite/Content/styles/images/ui-bg_highlight-soft_100_eeeeee_1x100.png

404.

Benim URL son bölümü jquery-ui extensionless URL, benim bohça için bir işleyici olduğunu anlıyorum, görüntü için göreli isteği sadece /styles/images/ neden görebiliyorum.

Benim sorum ise şudoğru yolu nedirişleme bu durum?

CEVAP
8 Temmuz 2012, Pazar


Çok kazma sonra, http://forums.asp.net/t/1774324.aspx/1 rastladım.

Size paket olarak tanımlarsanız:

bundles.Add(new StyleBundle("~/Content/css/jquery-ui/bundle")
       .Include("~/Content/css/jquery-ui/*.css"));

Kaynak paket oluşturan dosyalar olarak aynı yol üzerinde paket define nerede, akraba resim yollarını çalışmaya devam eder. Paket yolu son bölümünü gerçekten bu özel paket için file name (yani, /bundle istediğiniz herhangi bir isim olabilir).

Bu hep beraber aynı klasör donatılacak bir bakış açısıyla mantıklı bence) CSS donatılacak vardır.

Güncelleme

@Hao Kung tarafından aşağıdaki açıklama başı olarak, alternatif olarak bu şimdiCssRewriteUrlTransformation bir(Change relative URL references to CSS files when bundled)uygulayarak elde edilebilir.

NOT: yorum sorunları ile ilgili bir sanal dizin içinde mutlak yolları yeniden teyit değil, bu herkes için değildir (?).

bundles.Add(new StyleBundle("~/Content/css/jquery-ui/bundle")
       .Include("~/Content/css/jquery-ui/*.css", new CssRewriteUrlTransform()));

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunliu

    bunliu

    2 Mayıs 2007
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • Pepsi

    Pepsi

    1 Kasım 2005