18

私はCodeIgniterを始めたばかりですが、css、js、画像などがどこにあるべきかわかりません。システムフォルダ全体の外では問題ないように見えますが、それはすべてが分離していることを意味します。Insideはファイルパスが長いことを意味し、混乱するのではないかと心配しています。この問題のベストプラクティスは何ですか?

4

6 に答える 6

15

私は通常、ルートレベルに個別のフォルダを配置するため、次のようなディレクトリ構造になります。

/system
/css
/js
/img

私にとってはうまくいくようです-を使用するsite_url(url)と、生成されるURLはルートからのものであるためsite_url('css/file.css')、スタイルシートなどへのURLを生成するために使用できます。

于 2008-10-07T13:51:25.713 に答える
6

application個人的には、ディレクトリからディレクトリをリッピングしsystemて、 の兄弟にしsystemます。public_html (www)次に、 index.php を移動してパブリック アセットを保存するプロジェクト ディレクトリを作成します。

あなたが取り組んでいるプロジェクトの名前が であるとしましょうprojekt。親ディレクトリにpublic_html (www)というディレクトリを作成し、そのディレクトリ内に、CISYSTEM使用しているバージョンのディレクトリを作成します。202210

/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>

乾杯

于 2012-08-04T00:52:34.627 に答える
1

base_url()/ css / name.css

于 2010-09-07T10:05:02.993 に答える
1

ルート レベルに非常に多くのディレクトリがあるのは嫌いなので、/public を使用し、htaccess を使用して /scripts を /public/scripts などに書き換えます。

于 2008-10-07T18:44:54.297 に答える
1

この方法で site_url(url) ヘルパーを使用するには、最初に Apache mod_rewrite (または同等のもの) を構成して、URI から index.php セグメントを削除する必要があります。

それ以外の場合、site_url メソッドは index.php を URL に追加します。これにより、上記のようにベース ディレクトリにアセットがある場合、アセットへのパスが台無しになる可能性があります。

URI からの index.php の削除に関する CodeIgniter のドキュメントは次のとおりです。

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

于 2011-04-19T17:14:28.630 に答える
1

アセットをルート レベルに保持するのが最善だと思います。<?=base_url()?>サイトの完全なルートをエコーするために使用できます。構成ファイルでは、Web サイトのルートを設定します。この声明はまさにそれを反映しています。

このため、次のようなインクルードを使用できます。

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

コードのどこにいてもhttp://example.com/css/style.cssを取得します。

于 2008-10-07T23:33:00.690 に答える