21 Ocak 2012 Cumartesi


Asp.Net ile kullanıcı dostu url ler oluşturduktan sonra, sayfaların tekrar tekrar load olması gibi bir durumla karşılaşma olasılığımız var.
Şu sıralar çalıştığım projede böyle bir durumla karşılaştım.
bunun sebebi nedir?
Sayfanın her yüklenmesinde Request.Url i kontrol ettiğimde url lerin sayfadaki bazı image dosyalarını işaret ettiğini gördüm.
.aspx dosyasında, src=”../Images/test.png” şeklinde yapılandırılan bir srcözelliği, özellikle de  DXImageTransform.Microsoft.AlphaImageLoadernesnesi kullanılıyor ise, bu path in başına sayfa adresini ekliyor vesrc=”../Images/test.png” şeklindeki her kullanım için sayfa tekrardan load oluyor.
bunun çözümü nedir?
Çözüm aslında çok basit, tek yapmamız gereken src=”../images/test.png”kullanımı yerine, her zamansrc=”<%=ResolveClientUrl(“~/images/test.png”)%>” kullanımını tercih etmektir.
.aspx dosyasında sorun bu şekilde çözüldü ama işin birde css tarafı var. Css lerdeki “background: url(../images/test.png)” kullanımı için ne yapılabilir?
Bunun için çözüm yolu ise, .css dosyası yüklendikten sonra ilgili css class ını ezmek olacaktır.
form.css adlı css dosyamızda .test{background: url(../images/test.png) no-repeat !important;} şeklinde css class ımız olduğunu düşünürsek, aspx sayfamıza aşağıdaki gibi;
<link href=”<%=ResolveClientUrl(“~/css/forms.css”) %>” rel=”stylesheet” type=”text/css” />
form.css dosyamızı ekledikten sonra .test  isimli class ımızdaki background url i aşağıdaki gibi ezmemiz sorunumuzu çözecektir.
.test{background: url(‘<%=ResolveClientUrl(“~/images/test.png”)%>’) no-repeat !important;}
Bu çözüm yolu işimize yaradı. Umarım sizlerinde işine yarar.
Önerebileceğiniz başka bir çözüm yolu olursa lütfen yazın. Yoksa uygulayın ;)

0 yorum:

Yorum Gönder