私はCodeIgniterを始めたばかりですが、css、js、画像などがどこにあるべきかわかりません。システムフォルダ全体の外では問題ないように見えますが、それはすべてが分離していることを意味します。Insideはファイルパスが長いことを意味し、混乱するのではないかと心配しています。この問題のベストプラクティスは何ですか?
6 に答える
私は通常、ルートレベルに個別のフォルダを配置するため、次のようなディレクトリ構造になります。
/system
/css
/js
/img
私にとってはうまくいくようです-を使用するsite_url(url)
と、生成されるURLはルートからのものであるためsite_url('css/file.css')
、スタイルシートなどへのURLを生成するために使用できます。
application
個人的には、ディレクトリからディレクトリをリッピングしsystem
て、 の兄弟にしsystem
ます。public_html (www)
次に、 index.php を移動してパブリック アセットを保存するプロジェクト ディレクトリを作成します。
あなたが取り組んでいるプロジェクトの名前が であるとしましょうprojekt
。親ディレクトリにpublic_html (www)
というディレクトリを作成し、そのディレクトリ内に、CISYSTEM
使用しているバージョンのディレクトリを作成します。202
210
/CISYSTEM
/202
/210
/another_CI_version
/projekt_application
/models
/views
/controllers
/private_assets
/public_html
/projekt
index.php
.htaccess
css
img
js
lib
このディレクトリ構造の優れた点は、別のセキュリティ層が追加され、CI コアのアップグレード/交換が非常に簡単になることです。さらに、コアに変更を加えることは想定されていません。コアが格納されている単一のディレクトリを持ち、すべてのプロジェクトがそれを参照するようにすると、物事は DRY に保たれます。
ただし、このすべてのディレクトリのシャッフルでは、いくつかのことを再ルーティングする必要があります。幸いなことに、CodeIgniter を使用すると簡単に変更できます。すべての変更をindex.php
ファイルで行うことができます。
いくつかのものを開いindex.php
て再ルーティングします。
変化する:$system_path = 'system';
に:$system_path = '../../CISYSTEM/210';
変化する:$application_folder = 'application';
に:$application_folder = '../../projekt_application';
site_url()
また、他の回答で使用について話している人がたくさんいます。あまり冗長でない使用方法をお勧めします... HTML の要素site_url()
を使用する場合、毎回呼び出す必要はありません。<base>
<base href="<?= site_url();?>">
それをアプリケーションに含めるだけで、<head>
コントローラーを直接呼び出すことができます...次のように:
<a href='controllername/functionname'>Some Action</a>
乾杯
base_url()/ css / name.css
ルート レベルに非常に多くのディレクトリがあるのは嫌いなので、/public を使用し、htaccess を使用して /scripts を /public/scripts などに書き換えます。
この方法で site_url(url) ヘルパーを使用するには、最初に Apache mod_rewrite (または同等のもの) を構成して、URI から index.php セグメントを削除する必要があります。
それ以外の場合、site_url メソッドは index.php を URL に追加します。これにより、上記のようにベース ディレクトリにアセットがある場合、アセットへのパスが台無しになる可能性があります。
URI からの index.php の削除に関する CodeIgniter のドキュメントは次のとおりです。
アセットをルート レベルに保持するのが最善だと思います。<?=base_url()?>
サイトの完全なルートをエコーするために使用できます。構成ファイルでは、Web サイトのルートを設定します。この声明はまさにそれを反映しています。
このため、次のようなインクルードを使用できます。
<link href="<?=base_url()?>/css/style.css" rel="stylesheet" type="text/css" />
コードのどこにいてもhttp://example.com/css/style.cssを取得します。