0

Codeigniter には次のファイル構造があります。

application
system
assets
-- js
-- imgs
-- css

これらのアセット ファイルに正しくリンクするには、次のようなヘルパーを作成する必要があります。

function asset_url(){
   return base_url().'assets/';
}

私は Codeigniter と MVC アーキテクチャがまったく初めてです。誰かが私がこれを達成する方法を説明してください。

application/helpers フォルダに「asset_helper.php」という名前の新しいファイルを作成してから、上記のコードを入れますか?

次に、html に何を書き込んで、assets フォルダー内の css ファイルにリンクしますか?

4

3 に答える 3

1

はい、ヘルパーガイド(およびあなたの質問)で説明されているように、ファイル名のapplication/helpers/末尾にあるファイルに関数を配置_helper.phpします。それを配置したら、それをロードする必要があります

$this->load->helper('asset');

または、下の autoload 設定を使用しapplication/config/autoload.phpます。

_helper.php次のような if を使用して、ファイル内の個々の関数をワープしたい場合があります。

if ( ! function_exists('asset_url')) {
    function asset_url() {
        // ...
    }
}

したがって、名前の衝突が発生した場合、致命的なエラーは発生しません。衝突があるかどうかを知る方が良いと私は主張しますが、CI 独自のヘルパー ファイルはこれを行うため、衝突する名前で独自の 1 つまたは 2 つのヘルパーを定義し、同じヘルパー ファイルから他のヘルパーをそのまま残すことができます。

于 2013-03-10T13:41:21.447 に答える
1

シンプルな

<link rel="stylesheet" href="<?=base_url('assets/css');?>" type="text/css">

トリックを行います。

ただし、それに従いたい場合は、uri_helper見つかったコアに関数を直接配置するsystem/helpers/url_helperか、ディレクトリに新しいヘルパーを作成できます。ファイルの名前の最後に example をapplication/helper付ける必要があることに注意してください。また、との違いは、aがクラスであるのに対し、aはさまざまな機能を備えた単なる php ファイルであることにも注意してください。_helperfilename_of_myhelper_helper$this->load->helper('filename_of_myhelper')helperlibrarylibraryhelper

于 2013-03-10T13:41:32.130 に答える
0

私は通常使用します

$cssFooPath = $this->config->base_url() . 'css/foo.css';

このように、codeigniter はベース URL を処理します (html ファイル内の絶対パスを提供し、あなたと同じようにアプリのルートにアセット ディレクトリを配置します。「js/foo.js」または「img/foo」についても同じことが言えます)。 .png' 明らかに。

Apache を使用している場合は、この .htaccess で

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt|assets|hg)
RewriteRule ^(.*)$ /index.php/$1 [L]

apache がすべてを処理するため、ファイルが変更されていない場合に http ヘッダーを簡単に指定できます。

于 2013-03-10T13:56:24.237 に答える