144

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

4

14 に答える 14

206

私は次のような設定をしています:

  • 応用
  • システム
  • 資産
    • 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()ます。

于 2011-07-08T21:43:22.040 に答える
16

これが私が公共資産を処理する方法です。ここではPhalcon PHPの Bootstrap メソッドを使用します。

フォルダ構造

|-.htaccess*
|-application/
|-public/
  |-.htaccess**
  |-index.php***
  |-css/
  |-js/
  |-img/
  |-font/
  |-upload/
|-system

編集するファイル

  1. .htaccess*

    プロジェクトへのすべてのリクエストはpublic/ディレクトリに書き換えられ、ドキュメント ルートになります。この手順により、内部のプロジェクト フォルダーがパブリック ビューから非表示のままになり、この種のセキュリティの脅威が排除されます。- Phalconphp Doc

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule  ^$ public/    [L]
        RewriteRule  (.*) public/$1 [L]
    </IfModule>
    
  2. .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>
    
  3. index.php***

    applicationパスとsystemパスを次のように変更します。

    $system_path = '../system';
    $application_folder = '../application';
    

ここで、 publicフォルダーを次のように使用しますbase_url()."public/[YOUR ASSET FOLDER]"

お役に立てれば :)

于 2014-03-14T17:56:32.430 に答える
12

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

于 2011-07-08T21:38:26.877 に答える
7

.htacces を変更して、書き換え条件にディレクトリを追加する必要があるとは誰も言いません。「system」、「application」、「index.php」とともに、ルートディレクトリにディレクトリ「public」を作成しました。.htaccess ファイルを次のように編集します。

RewriteCond $1 !^(index\.php|public|robots\.txt)

必要に応じて、<?php echo base_url()."/public/yourdirectory/yuorfile";?> 「パブリック」ディレクトリ内にサブディレクトリを追加できます。

于 2013-02-04T16:04:18.363 に答える
5

CSS ファイルを配置する場所に関係なく、link_tag() と呼ばれる CodeIgniter の「html」ヘルパーを使用するだけです。このヘルパーを次のように適用します。

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

CSSファイルを最も適切な場所に配置するのはあなた次第です(あなたの意見で)。「html」ヘルパーを自動ロードするか、個別にロードして使用する必要があります。

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

この種のことを行うための codeigniter には多くのヘルパーがあります。

于 2013-05-18T10:06:26.517 に答える
4

CodeIgniter 3.1.0 の最新バージョンを使用しています。そのフォルダ構造は次のとおりです。

  • システム
  • 応用
  • ユーザーガイド
  • 資産
    • 画像
    • js
    • CSS

これは、画像、css、および js ファイルを assets フォルダー内に配置する場所です。

于 2016-08-28T11:51:08.443 に答える
4

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>
于 2013-06-06T12:22:38.140 に答える
3

次のフォルダー構造を使用します。

application 
system 
static
    admin
        js
        css
        images
    public
        js
        css
        images
    uploads
        original
        thumbs
于 2015-09-14T11:35:21.267 に答える
2

(私は 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]
于 2015-04-07T17:32:08.543 に答える
0

こんにちは、私たちの構造は 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"> 
于 2016-03-01T07:06:29.717 に答える
0

問題がさらに単純になる可能性があることを追加したかっただけです-

私はこの問題で何時間も頭を悩ませてきました-すべての解決策を読みましたが、何も機能しませんでした. その後、実際のファイル名を確認することができました。

image.jpg.jpg「 」ではなく「 」を持っていましたimage.jpg

使え$ ls public/..path to image assets../ばファイル名を素早く確認できます。

ばかげているように聞こえますが、ここにあるすべての技術的なアドバイスを考えると、ファイル名のような単純なものを見るとは思いもしませんでした。

于 2020-08-26T11:55:28.543 に答える
-2

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" />
于 2015-04-20T23:11:20.630 に答える