Codeigniterにイメージファイル、css、jsなどをどこに置くのですか?


Answers

いいえ、ビューのフォルダ内は良くありません。

Look:プロジェクトに3つの基本フォルダが必要です。

システム //これはCIフレームワークであり、このファイルに触れる理由はあまりありません

アプリケーション //これはあなたのロジックが行く場所、アプリケーションを作るファイル

public // これはあなたのドキュメントルートでなければなりません

セキュリティ上の理由から、フレームワークとアプリケーションをドキュメントルート(public_html、htdocs、public、www ...など)の外側に保つ方が良いです。

あなたのパブリックフォルダの中に、パブリック情報、ブラウザが見ることができるもの、フォルダを見つけるための一般的なものを置くべきです:images、js、css; あなたの構造は次のようになります:

|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
Question

cssフォルダと画像ファイルフォルダはどこに置いても問題ありませんか? 私はビューフォルダ内で考えていたのですか? しかし、コントローラは常にベースURLへのパスを再ルーティングします。したがって、.htmlファイルのパスを冗長な場所に指定する必要があります。




link_tag()ヘルパーは明らかにこれを行う方法です。 site_root / css /にあなたのcssを置き、ヘルパーを使用してください:

CodeIgniterのドキュメントから...

echo link_tag('css/mystyles.css');

出力

<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />



(私はCodeigniterを初めて使用しているので、これが最良のアドバイスであるかどうかわかりません)

私は私のパブリックフォルダに公開されているファイルを保持しています。 彼らがそこにいることは論理的です。私はCodeigniterを使用する必要がない何かのためにCodeigniterを使用したくありません。

ディレクトリツリーの外観は次のようになります:

  • /応用/
  • /パブリック/
  • / public / css /
  • / public / img /
  • / public / js /
  • /システム/

私が/ public /に保持する唯一のファイルはCodeigniterのindex.phpと私の.htaccessファイルです:

RewriteEngine On
RewriteBase /

RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]

RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]



私は次のフォルダ構造を使用します:

application 
system 
static
    admin
        js
        css
        images
    public
        js
        css
        images
    uploads
        original
        thumbs



私は通常、そのようなすべてのファイルをアプリケーションルートの "assets"フォルダに入れて、 Asset_Helperを使ってそれらのファイルを指すようにします。 これがCodeIgniterの提案です。




CSSファイルをどこに置いても、単にlink_tag()というCodeIgniterの "html"ヘルパーを使うことができます。 このヘルパーを次のように適用します:

echo link_tag('folder/subfolder/stylesheet.css');

CSSファイルをあなたの意見で最も適切な場所に配置するのはあなた次第です。 あなたは、 "html"ヘルパーをオートロードするか、それを使用するために別途ロードする必要があります。

人々はこれを達成するためにbase_url()の使用を提案し続けますが、実際にはそれを行うための "CodeIgniter"の方法ではありません(私はこの質問にいくつか重複があると思います)。 これは機能しますが、フレームワークを使用する理由の1つは、その中にあらかじめ作成された関数を使用することです。

この種のことを行うためのコードネイターには、多くのヘルパーがいます。