質問

私はCodeIgniterから始めたばかりで、css、js、imagesなどがどこに行くべきかわかりません。システム全体のフォルダは問題ないように見えますが、それはすべてが独立していることを意味します。内部では、ファイルパスが長くなることを意味しており、混乱を招くかもしれないと心配しています。この問題のベストプラクティスは何ですか?

役に立ちましたか?

解決

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

/system
/css
/js
/img

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

他のヒント

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

作業中のプロジェクトの名前はCISYSTEMとします。 202の親ディレクトリに210というディレクトリを作成し、そのディレクトリ内で、使用しているバージョンindex.php$system_path = 'system';などからディレクトリを作成します。

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

このディレクトリ構造の利点は、セキュリティのレイヤーが追加され、CIコアのアップグレード/スワップアウトが非常に簡単になることです。さらに、コアに変更を加えることは想定されていません-コアが格納される単一のディレクトリを持ち、すべてのプロジェクトがそれを参照することで物事が乾燥します。

このディレクトリのシャッフルはすべて、いくつかのことを変更する必要があります。幸いなことに、CodeIgniterはそれを簡単にします。すべての変更は$system_path = '../../CISYSTEM/210';ファイルで行うことができます。

$application_folder = 'application';を開いて、いくつかの経路を変更します:

変更:$application_folder = '../../projekt_application';

宛先:site_url()

変更:<base>

宛先:<base href="<?= site_url();?>">


また、他の回答で<head>を使用することについて多くの人が話しているのを見ます。 HTMLの<a href='controllername/functionname'>Some Action</a>要素を使用する場合、毎回呼び出す必要はありません。

<=>

アプリケーションの<=>に含めるだけで、次のようにコントローラを直接呼び出すことができます:

<=>

乾杯

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

ルートレベルでアセットを保持するのが最適だと思います。 <?=base_url()?>を使用して、サイトの完全なルートをエコーできます。構成ファイルで、Webサイトのルートを設定します。このステートメントはそれをそのままエコーアウトします。

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

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

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

base_url()/ css / name.css

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top