13

Böyle bir paket tanımlamak istiyorum: grubu adı sadece bu işleri "~/style" isePaket adında dosya uzantısına sahip olmanın bir yolu var mı?

bundles.Add(
    new StyleBundle("~/style.css").Include(
     //... 
)); 

, ancak dosya uzantısı ile her zaman bir 404. CSS ve JS için sunucu aramaları şüpheli döndürür sürücüdeki dosyaları ve demetleme sistemini yok sayar, ancak dosya uzantılarını paket adlarına dahil etmeye çalışan başka kimseyi bulamıyorum. Bir URL yeniden yazmak gibi bir şey olmadan yapmak mümkün mü?

cevap

19

Sen web.config'de sizin <system.webServer> bölümüne aşağıdakileri ekleyebilirsiniz: Bu tür .js ve .css gibi statik kaynaklar için istekleri yönetilen modüllerin geçecek ve ASP tarafından ele geçirilebilir sağlayacaktır

<modules runAllManagedModulesForAllRequests="true" /> 

. NET MVC. yalnızca kullanmak gerekir URL'ler için bunları yapılandırabilirsiniz tüm istekler için runAllManagedModulesForAllRequests sağlayan alternatif olarak

.

<handlers> 
    <!-- ... --> 
    <add name="scriptBundle" verb="*" path="script.js" type="System.Web.Optimization.BundleHandler, System.Web.Optimization" preCondition="managedHandler" /> 
    <add name="cssBundle" verb="*" path="style.css" type="System.Web.Optimization.BundleHandler, System.Web.Optimization" preCondition="managedHandler" /> 
</handlers> 
+3

Hmm, sadece .js ve .css dosyaları etkileyecek daha az bir derecede çözümü var: Yani <handlers> içine aşağıdakileri ekleyin? – sbking

+0

Elbette, güncellenmiş cevabımı görün. –

+1

+1 ancak 'path =" *. Bundle.js "' ye sahip olmak, işleyicinin gerçek dosyalar için çalışmasını engelleyecektir. –

İlgili konular