7

Web サイトを CI に移行したい。index()関数のciサンプルファイルwelcome.phpから単純に変更しただけで、表示するビューをロードします。ただし、ヘッダー ファイルには多くの javascript と css ファイルを入れます。で呼び出し$this->load->view('header'); ますが、JavaScriptファイルを正しくロードできません! 誰でも私にいくつかのヒントを教えてもらえますか? 正しいパスを設定する方法を構成するのは難しいです。

<script type="text/javascript" src="/assets/javascripts/order.js"></script> 
<script type="text/javascript" src="../assets/javascripts/order.js"></script>   
<script type="text/javascript" src="../../assets/javascripts/order.js"></script>    

次のような私のコントローラコード

    class Welcome extends CI_Controller {

public function index()
{
    $this->load->helper('url');     
    $this->base = $this->config->item('base_url');

    $this->load->view('header');
    $this->load->view('welcome_message');


}

}

以下は私のフォルダ構造です

ここに画像の説明を入力

4

6 に答える 6

8

アセットフォルダーを配置しますapplications, system, assets

urlアプリケーションではなく、ヘッダービュー部分を次のように呼び出すコントローラーにヘルパークラスを単純にロードします

$this->load->helper('url');
$this->load->view('header');

ヘッダーファイルでこのようなものを使用するだけです..フォルダーを返す
ため..$this->base_url()/

<script src="<?php echo $this->base_url();?>assets/javascript/jquery.js"></script>

アプリケーションフォルダー内のアクセスは、私が知っているコア部分のためだけであるため、フォルダー構造を変更します..

URL Helperについて詳しく知りたい場合は、こちらのリンクをご覧ください。

于 2012-08-25T04:25:57.370 に答える
2

これは最小限のコードで最善の方法です

<script src="<?php echo base_url('assets/javascript/jquery.js');?>"></script>
<script src="<?php echo base_url('assets/css/bootstrap.min.js');?>"></script>
于 2015-01-26T06:18:39.700 に答える
0

Jogesh_p の回答は、アセットの読み込みに関する問題を確実に解決します。あなたが与えたこの質問についてフォローアップしたいと思います

ありがとうございます。ちなみに、phpMailler や zend framwork などのライブラリを使用したい場合。

application/libraries/ に入れることができます

次に、ライブラリのクラスの名前を使用してコントローラにロードします

$this->load->library('phpmailer');

コンストラクターまたは個々のメソッドにロードするのはあなたの選択です。

幸運を!

于 2012-08-25T09:18:52.323 に答える
0

私の問題を解決するために、アセットをロードするヘルパー関数を作成しました。そして、これが私のアプリケーションにデプロイされた私のコードです。 PS: 最初に、適切で柔軟なディレクトリ構造を計画しました

[ some_helper.php ]

/*
 * Created: 2017/12/14 00:28:30
 * Updated: 2017/12/14 00:28:39
 * @params
 * $url_structure = 'assets/js/%s.js'
 * $files = ['main.min', 'social']
 * $echo = FALSE
 *
 */

function load_js($files = [], $url_structure = NULL, $version = '1.0', $echo = FALSE){
    $html = "";
    foreach ($files as $file) {
        if($url_structure){
            $file = sprintf($url_structure, $file);
        }
        $file_url = base_url($file);
        $html .= "<script src=\"{$file_url}?v={$version}\"></script>";
    }
    if($echo) {
        echo $html;
    }
    return $html;
}

/*
 * Created: 2017/12/14 00:28:48
 * Updated: 2017/12/14 00:28:51
 * @params
 * $version = '1.0' // Later load from configuration
 * $url_structure = 'assets/js/%s.css'
 * $files = ['main.min', 'social']
 * $echo = FALSE
 *
 */

function load_css($files = [], $url_structure = NULL, $version = '1.0', $echo = FALSE){
    $html = "";
    foreach ($files as $file) {
        if($url_structure){
            $file = sprintf($url_structure, $file);
        }
        $file_url = base_url($file);
        echo "<link rel=\"stylesheet\" href=\"{$file_url}?v={$version}\">";
    }
    if($echo) {
        echo $html;
    }
    return $html;
}

次に、ビューで呼び出されます

[ some_view.php ]

$css = [
    'path' => 'assets/css/%s.css',
    'files' => ['bootstrap.min','style']
];
load_css($css['files'], $css['path'], '1.0', TRUE);

それが誰かを助けることを願っています。OPの場合は$css['path'] = 'application/assets/css/%s.css';トリックを行います。

私が更新し続けるGithubのコードを更新しました。

于 2017-12-13T19:22:05.920 に答える
-2


assets/css/bootstrap.min.css"

    <!-- Include JS -->
    <script src="<?php echo base_url();?>assets/js/jquery.js"></script>
    <script src="<?php echo base_url();?>assets/js/bootstrap.min.js"></script>
于 2015-07-14T17:49:00.273 に答える