2008-10-07 15 views
17

Sadece CodeIgniter ile başlıyorum ve css, js ve görüntüler gibi şeylerin nereye gitmesi gerektiğinden emin değilim. Tüm sistem klasörü dışında iyi görünüyor, ama bu her şeyin ayrı olduğu anlamına gelir. İçeride dosya yollarının daha uzun olduğu ve işlerimi bozabileceğinden endişeleniyorum. Bu konuda en iyi uygulama nedir?Öğeler, bir kod ateşleyici projesinde nereye gitmeli?

cevap

15

Genellikle kök düzeyinde ayrı klasörler koymak, bu yüzden böyle bir dizin yapısı ile bitirmek:

/system 
/css 
/js 
/img 

benim için çalışmak görünüyor - Eğer site_url(url) kullandığınızda, oluşturduğu URL dan root, bu nedenle, stil sayfalarınıza URL'ler oluşturmak için site_url('css/file.css')'u kullanabilirsiniz.

+0

Ah mantıklı. Site_url kullanabilmek istedim, bu yüzden mantıklı. Teşekkürler! –

+0

Bu, sistem klasörünüzü genel bir dizinde tuttuğunuz anlamına mı geliyor? –

+1

@Blowski Evet. En iyi uygulama olmadığını biliyorum, ancak özellikle de bir sorun olduğunu düşünmüyorum, özellikle de erişimi kapatmak için .htaccess kullanıyorsanız. –

1

Kök düzeyinde çok fazla dizin bulundurmaktan nefret ediyorum, bu yüzden/public kullanıyorum ve/public/scripts komutlarını yeniden yazmak için htaccess kullanıyorum. .

+0

Mod_rewrite'inizi gönderebilir misiniz? – bswinnerton

1

Öğeleri kök düzeyinde tutmak en iyisi. Sitenin tam kökünü bulmak için <?=base_url()?>'u kullanabilirsiniz. Yapılandırma dosyasında, web sitesinin kökünü kurarsınız. Bu ifade sadece bunu yansıtıyor. Bu nedenle

kullanabileceğiniz böyle içerir: kodunuzda herhangi bir yerde

<link href="<?=base_url()?>/css/style.css" rel="stylesheet" type="text/css" /> 

ve hala http://example.com/css/style.css alacak.

1

base_url()/css/name.css

+0

base_url() aslında istediğiniz eğik çizgi içerir: base_url(). 'Css/name.css'; –

+0

ok.ok.thanks .i biliyorum ama koymayı unuttum. –

1

URI'dan index.php segmenti kaldırmak için öncelikle Apache mod_rewrite (veya eşdeğeri) yapılandırmak GEREKİR bu şekilde site_url (URL) yardımcı kullanmak için .

Aksi takdirde, site_url yöntemi, yukarıdaki gibi ana dizinde bulursanız, büyük olasılıkla varlıklarınızın yollarını mahvedecek URL'ye index.php ekler.

İşte URI'dan index.php uzaklaştırmaya CodeIgniter belgeleri var:

http://codeigniter.com/wiki/mod_rewrite/

6

Şahsen ben system dizininin dışında application dizini rip ve system için bunu bir kardeş olun. Daha sonra, index.php dosyasını taşıdığım ve genel varlıklarımı sakladığım public_html (www) numaralı bir proje dizini oluşturuyorum.

Üzerinde çalıştığınız projeye projekt adı verildiğini varsayalım. public_html (www) için üst dizinde CISYSTEM adlı bir dizin oluşturun ve bu dizin içinde kullandığınız sürümde, 202, 210 vb bir dizin oluşturmak

/CISYSTEM 
    /202 
    /210 
    /another_CI_version 
/projekt_application 
    /models 
    /views 
    /controllers 
    /private_assets 
/public_html 
    /projekt 
     index.php 
     .htaccess 
     css 
     img 
     js 
     lib 

bu dizin yapısı güzelliği başka bir katman ekler güvenlik ve CI çekirdeğini yükseltmek/takas etmek için ölü kolaylaştırır. Ayrıca, çekirdeğinizde değişiklikler yapmanıza gerek yok - çekirdeğinizin depolandığı ve tüm projelere sahip olduğu tek bir dizine sahip olmanız, DRY'yi korur.

Tüm bu dizin karıştırma işlemleri bir kaç şeyi yeniden yönlendirmenizi gerektirir. Neyse ki, CodeIgniter kolaylaştırır - tüm değişiklikler index.php dosyasında yapılabilir.

Açık index.php ve yeniden yönlendirmek bir kaç şey:

Değişimi: $system_path = 'system';

için: $system_path = '../../CISYSTEM/210';

Değişimi: $application_folder = 'application';

için: $application_folder = '../../projekt_application';


Ayrıca, diğer yanıtlarda site_url()'u kullanma hakkında birçok kişi görüyorum. HTML'nin <base> eleman faydalanmak eğer site_url() kullanarak daha az ayrıntılı bir şekilde tavsiye ... her zaman onu aramak zorunda değilsiniz:

<base href="<?= site_url();?>">

Sadece içerdiğini daki uygulamanın <head> ve mümkün gibi doğrudan ... Denetleyicilerinizi çağırır:

<a href='controllername/functionname'>Some Action</a>

Alkış

İlgili konular