css フォルダと画像ファイル フォルダはどこに置くことができますか? ビューフォルダー内で考えていましたか?ただし、コントローラーは常にベース URL へのパスを再ルーティングするため、冗長な .html ファイル内のパスを指定する必要があります。
14 に答える
私は次のような設定をしています:
- 応用
- システム
- 資産
- js
- 画像
- CSS
次に、セットアップに応じて、これへの完全なパスを単純に返すヘルパー関数があります。次のようなものです。
アプリケーション/ヘルパー/utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
私は通常、これに似た一般的なルーチンを同じファイルに保持し、codeigniter の autoload 構成で自動ロードします。
注: アクセス用の URL ヘルパーを自動ロードし
base_url()
ます。
アプリケーション/設定/autoload.php:
$autoload['helper'] = array('url','utility');
その後、コード全体にアクセスできasset_url()
ます。
これが私が公共資産を処理する方法です。ここではPhalcon PHPの Bootstrap メソッドを使用します。
フォルダ構造
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
編集するファイル
.htaccess*
プロジェクトへのすべてのリクエストはpublic/ディレクトリに書き換えられ、ドキュメント ルートになります。この手順により、内部のプロジェクト フォルダーがパブリック ビューから非表示のままになり、この種のセキュリティの脅威が排除されます。- Phalconphp Doc
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule>
.htaccess**
ルールは、要求されたファイルが存在するかどうかを確認し、存在する場合は、Web サーバー モジュールによって書き換える必要はありません。- Phalconphp Doc
<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]"
お役に立てれば :)
私は通常、そのようなすべてのファイルをアプリケーション ルートの "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 には多くのヘルパーがあります。
CodeIgniter 3.1.0 の最新バージョンを使用しています。そのフォルダ構造は次のとおりです。
- システム
- 応用
- ユーザーガイド
- 資産
- 画像
- js
- CSS
これは、画像、css、および js ファイルを assets フォルダー内に配置する場所です。
publicなどの任意の名前のフォルダーを1つ追加し、.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>
次のフォルダー構造を使用します。
application
system
static
admin
js
css
images
public
js
css
images
uploads
original
thumbs
(私は Codeigniter を初めて使用するので、これが最善のアドバイスかどうかはわかりません)
パブリック フォルダーに公開ファイルを保持しています。彼らがそこにいるのは論理的であり、Codeigniter を使用する必要のないものに使用したくありません。
ディレクトリ ツリーは次のようになります。
- /応用/
- /公衆/
- /パブリック/css/
- /公開/img/
- /パブリック/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、user_guide のようなものです
すべてのフォルダーのすぐ近くにフォルダー名 assets を作成し、この assets フォルダー内に 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">
問題がさらに単純になる可能性があることを追加したかっただけです-
私はこの問題で何時間も頭を悩ませてきました-すべての解決策を読みましたが、何も機能しませんでした. その後、実際のファイル名を確認することができました。
image.jpg.jpg
「 」ではなく「 」を持っていましたimage.jpg
。
使え$ ls public/..path to image assets../
ばファイル名を素早く確認できます。
ばかげているように聞こえますが、ここにあるすべての技術的なアドバイスを考えると、ファイル名のような単純なものを見るとは思いもしませんでした。
link_tag()
ヘルパーは明らかにこれを行う方法です。css を通常の場所である site_root/css/ に置き、ヘルパーを使用します。
CodeIgniter のドキュメントから...
echo link_tag('css/mystyles.css');
出力
<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />