回答:
私はこのような設定をしています:
次に、セットアップに応じて、これへの完全なパスを返すヘルパー関数を用意します。これは次のようなものです。
application / helpers / utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
私は通常、これと同じような一般的なルーチンを同じファイルに保持し、codeigniterのオートロード構成でそれをオートロードします。
注:
base_url()
アクセス用にURLヘルパーをオートロードします。
application / config / autoload.php:
$autoload['helper'] = array('url','utility');
その後asset_url()
、コード全体にアクセスできます。
$autoload['helper'] = array('url', 'utility');
いいえ、viewsフォルダー内は適切ではありません。
見て:プロジェクトには3つの基本フォルダーが必要です。
システム //これはCIフレームワークですこのファイルに触れる理由はそれほど多くありません
アプリケーション //これはあなたのロジックが行くところです、アプリケーションを作るファイル、
public // これはドキュメントルートである必要があります
セキュリティ上の理由から、フレームワークとアプリケーションをdocumentroot(public_html、htdocs、public、www ...など)の外部に置いた方がよい
パブリックフォルダー内には、ブラウザーが表示できるパブリック情報を配置する必要があります。フォルダー、画像、js、cssを見つけるのが一般的です。だからあなたの構造は次のようになります:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
public
。. という名前のフォルダが見つかりません。同じ名前のフォルダを追加するのに問題はありますか。
.htaccess
forを削除/index.php?
してパブリックフォルダーを呼び出すことですbase_url().'public/yourfolder';
これが私が公共資産を扱う方法です。ここでは、Phalcon PHPのBootstrapメソッドを使用しています。
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
.htaccess*
プロジェクトへのすべてのリクエストはpublic /ディレクトリに書き換えられ、ドキュメントルートになります。この手順により、内部プロジェクトフォルダーがパブリックビューから非表示のままになるため、この種のセキュリティの脅威を排除できます。- Phalconphpドク
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
.htaccess**
ルールは、要求されたファイルが存在するかどうかをチェックし、存在する場合は、Webサーバーモジュールで書き換える必要はありません。- Phalconphpドク
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>
index.php***
application
パスとsystem
パスを次のように変更します。
$system_path = '../system';
$application_folder = '../application';
今、あなたはpublic
フォルダを次のように使用し ますbase_url()."public/[YOUR ASSET FOLDER]"
お役に立てれば :)
/public
ので、なぜbase_url ()."public/[...
ですか!それだけである必要がありbase_url ()."/[YOUR ASSET FOLDER]"
ます。
通常、そのようなすべてのファイルをアプリケーションルートの "assets"フォルダーに配置し、Asset_Helperを使用してそれらのファイルをポイントするようにします。これはCodeIgniterが提案するものです。
.htaccesを変更して、ディレクトリを書き換え条件に追加する必要があると誰も言っていません。ルートディレクトリに「system」、「application」、「index.php」とともに「public」ディレクトリを作成しました。.htaccessファイルを次のように編集しました。
RewriteCond $1 !^(index\.php|public|robots\.txt)
今、あなたは単に呼び出す必要がありますあなたは<?php echo base_url()."/public/yourdirectory/yuorfile";?>
好きなように「パブリック」ディレクトリ内にサブディレクトリを追加できます
CSSファイルの配置場所に関係なく、link_tag()と呼ばれるCodeIgniter "html"ヘルパーを使用できます。このヘルパーを次のように適用します。
echo link_tag('folder/subfolder/stylesheet.css');
CSSファイルを(あなたの意見では)最も適切な場所に置くのはあなた次第です。「html」ヘルパーをオートロードするか、使用するには個別にロードする必要があります。
これを実現するためにbase_url()の使用を提案し続けていますが、実際には、これを行う「CodeIgniter」の方法ではありません(この質問にはいくつか重複があります)。これは機能しますが、フレームワークを使用する理由の1つは、フレームワーク内の既成の関数を使用することです。
codeigniterには、この種のことを行う多くのヘルパーがいます。
1つのフォルダーを任意の名前、たとえばpublicに追加し、.htaccessファイルを追加して、すべてのファイルから書き込み許可を取得します。このフォルダーでは、すべてのファイルとすべてのフォルダーでエラーアクセスが禁止されません!このように使います
<link href="<?php echo base_url(); ?>application/public/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<?php echo base_url(); ?>application/public/js/javascript.js"></script>
(私はCodeigniterを初めて使用するので、これが最善のアドバイスかどうかはわかりません)
私はパブリックフォルダーに公開ファイルを保管しています。彼らがそこにいることは論理的であり、私がそれを使用する必要のないものにCodeigniterを使用したくありません。
ディレクトリツリーは次のようになります。
私が/ 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]
次のように、プロジェクトのディレクトリにあるassestフォルダ(任意の名前)内にcssフォルダを置くことができます。
- ci_app
- application
- views
- assets
- css
- style.css
...そのファイルをページにロードする場合は、base_url()関数を次のように使用できます。config.php
<head>
<link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'>
</head>
ファイルにプロジェクトのbase_urlを次のように追加してください。
$config['base_url'] = 'http://localhost/ci_app';
こんにちは私たちの構造はアプリケーション、システム、user_guideのようなものです
すべてのフォルダーのすぐ近くにフォルダー名のアセットを作成し、このアセットフォルダー内にcssとjavascriptおよびimagesフォルダーを作成し、すべてのcss jsをフォルダーに入れます
header.phpに移動して、次のようにcssを呼び出します。
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/touchTouch.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/style.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/camera.css">
link_tag()
ヘルパーは明らかにこれを行う方法です。あなたのCSSをそれが通常属している場所、site_root / css /に置き、ヘルパーを使用します:
echo link_tag('css/mystyles.css');
出力
<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />