0

私がやりたいのは、my_custom_settings.phpディレクトリのようなファイルを作成しconfig、ビュー部分で定義された変数を呼び出すことです。

で言いましょうmy_custom_settings.php:

define('TEMPLATE_DIR', 'assets/front');

HTMLで直接ビュー部分で:

<link href="<?=TEMPLATE_DIR?>/stylesheet/style.css">

または他の代替ソリューション??

PS:今、私はbase_url()パスにアクセスするために使用しています

4

3 に答える 3

1

これはあなたが探しているものよりも多いかもしれませんが、これはサイト全体の構成を1つのファイルに入れて、簡単に利用できるようにする方法です。

configフォルダーにファイルがあります:my_custom_settings.php

そのファイルで、次のような構成値を設定します。

$config['TEMPLATE_DIR'] = 'assets/front' ;
$config['site_slogan'] = 'Laravel? Never heard of it' ;

My_custom_settings.phpという名前の別のファイルを作成します

そのファイルを次の場所に配置します:application / library / My_custom_settings.phpそのファイルには次のものが含まれます:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class My_custom_settings
{

function __construct($config = array() )
{
foreach ($config as $key => $value) {
    $data[$key] = $value;    
    }
//  makes it possible for CI to use the load method 
$CI =& get_instance();
//  load the config variables
$CI->load->vars($data);
}
} // end my custom settings

今あなたのコントローラーコンストラクターに

public function __construct() {
    parent::__construct();

// Load configs for controller and view
    $this->load->library( 'my_custom_settings' );
    $this->config->load( 'my_custom_settings' );


} // end construct 

ここで、クールな部分について説明します。その構成ファイルに入力したものはすべて、コントローラーとビューで使用できるようになります。(configをモデルコンストラクターにロードすることもできます)。

コントローラまたはモデルでは、次のように$this->configで値を取得します。

$this->config->item( 'site_slogan' )

少し厄介ですが、ビューの場合、ここに報酬があります。必要なのは構成名だけです。

echo $TEMPLATE_DIR . '/somefile' ;
于 2012-11-22T21:13:22.933 に答える
1

個人的に私は /core/helpers/url_helper.php を拡張します。デフォルトはsite_url() , base_url(), current_url();etcです...私は持っているためにそれを拡張しましたbase_static_url();

core/helpers/url_helper.php に入れてください:

if ( ! function_exists('base_static_url'))
{
    function base_static_url()
    {
        $CI =& get_instance();
        return $CI->config->slash_item('base_static_url');
    }
}

次に、config.php ファイルに次の 1 行を追加します。

$config['base_url'] = "http://mysite.com/";
$config['base_static_url'] = "http://mysite.com/static/"; //path to your static resources folder

次に、次を使用して静的リソースを呼び出すことができます。

<img src="<?php echo base_static_url();?>img/myimage.png"/>
于 2012-11-22T08:59:44.690 に答える
0

画像、css、javascript、pdf、xml など、直接アクセスできるものはすべて、アプリケーション ディレクトリに置くべきではありません。あなたはそれを行うことができますが、実際にはすべきではありません。これらのファイル用に、ディレクトリのルートに新しいフォルダーを作成します。たとえば、views フォルダーなど、アプリケーションに混在させないでください。

  1. .htaccess ファイルを使用している可能性があります。これは、http 経由で特定のディレクトリへのアクセスのみを許可しています。これは、セキュリティ上の理由から非常に優れています。コントローラやモデルに直接アクセスしようとする試みを阻止したいからです。これが、ほとんどのファイルの先頭に BASEPATH が定義されているかどうかを確認し、定義されていない場合は exit('No direct script access.') を行う理由でもあります。

  2. 通常のディレクトリ構造を使用していないため、これらのリソース (js/css/images) への正しいパスを取得するために相対パスを使用することはできません。URL /users/login はディレクトリ /users/login からファイルをロードしていません。おそらく存在すらしていません。これらは、使用するクラス、メソッド、およびパラメーターを知るためにブートストラップが使用する単なる uri セグメントです。正しいパスを取得するには、次のようにスラッシュを使用します (アプリとアセットがサブディレクトリではなくルート ディレクトリにあると仮定します)。

    または、最善の策として、絶対 URL を使用します。

    // あなたの $config['base_url'] を参照します。

    http://mydomain.com/images/myimage.jpg オプションで使用できる CI に組み込まれたヘルパーがありますが、実際に知っておく必要があるのはこれだけです。

于 2012-11-22T09:04:41.160 に答える