07.03.2021
Pazar

Ana Sayfa
ASP
Pascal
Gazi Paşa
Yazı, Makale…
Marmara TBMYO
OGÜ EM
Hey Gidi Günler…
Müzik
Konuk Defteri

--Haberler--

..............................

Yeni bir haber yok gibi.
..............................


Eskişehir için 3 günlük hava tahmini.


Kaynak: D M İ Genel Müd.
..............................


Hayatın gerçek anlamı, gölgesinde oturamıyacağınızı düşündüğünüz ağaçlar dikmektir.
Nelson Henderson

Include Problemi


Yazı Büyüklüğünü Ayarlama Aparatı >>>>


ASP yazarken sunucunun bize sağladığı nimetler sayesinde aynı satırları tekrar tekrar yazmak zorunda kalmayız. Bunun yerine ilgili satırları bir dosyanın içine atarız ve dosyayı include ederiz...

Ederiz ama nası...

İki çeşit include yöntemi vardır. Bunlardan ilki ve en çok kullanılanı "FILE" yöntemidir. Bu yöntemde dosyanın yeri çalışan sayfanın konumuna göre verilir. Yani yer tanımı göreceli (relative)dir. Örnek vermek gerekirse:

<!-- #INCLUDE FILE="include/footer.asp" -->


yazarak bu dosya içindekileri sayfamıza eklemiş oluruz... Burada dikkat etmeniz gereken konular include edilecek dosyanın çalışan dosyanın bulunduğu klasörün altıdaki include klasörü içinde olması gerektiği ve dosyanın yolunu yazarken başına "/" (slash) koymamamız gerektiğidir. Bu iki şart yerine gelmezse dosya bulunmadı hatası yeriz... Özellikle hazımsızlık çekenlere bunu hiç tavsiye etmem.

Evet, bu ilk yöntem çok kullanılan bir yöntem. Ama problemli bir yöntem. Şahsen bana hep sıkıntı vermiştir. Hiç hayırlara vesile olduğunu görmedim. Bu yöntemle footer.asp’yi farklı alt klasörlerden include etmek için her seferinde footer.asp’ nin yolunu çalışacak dosyanın yerine göre ayarlamalıyız...

İkinci, daha az bilinen ve ne işe yaradığı pek çözülemediği için daha az kullanılan yöntem "VIRTUAL" yöntemidir... Bu yöntemde include edilecek dosyanın yerini IIS root klasörüne göre bildirilir. böylece çalışan dosya nerede olursa olsun dosyayı aynı satırı kullanara include edebilir. Örnek verelim:

<!-- #INCLUDE VIRTUAL="/include/footer.asp" -->


Görüldüğü üzere yukarıdaki örneğe çok benziyor. sadece FILE yerine VIRTUAL ve dosya yolunun başına slash (/) geldi. Şu durumda root da çalışan bir dosya için iki tanımlamada sorunsuz çalışacaktır. Ama örneğin "c:\inetpub\wwwroot\main\test.asp" dosyasına "c:\inetpub\wwwroot\include\footer.asp" dosyasını eklemek istersek yöntemlerin farklılıkları ortaya daha net çıkacaktır.

FILE Yöntemini Kullanırsak.
<!-- #INCLUDE FILE="../include/footer.asp" -->


INCLUDE Yöntemini Kullanırsak.
<!-- #INCLUDE VIRTUAL="/include/footer.asp" -->


Görüldüğü üzere virtual yönteminde klasör bilgisi ana klasör refarans alınarak verildiği için bir değiklik olmadı. Çünkü footer.asp ana klasöre göre hala aynı yerde. Ama File yöntemini kullandığımızda dosyanın yeri göreceli olarak değişmiştir klasör bilgisinde "../" ile gerekli düzeltme yapılmıştır.

Ne güzel değil mi?