我想要做的是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()用来访问路径
我想要做的是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()用来访问路径
我个人扩展了 /core/helpers/url_helper.php ,默认值site_url() , base_url(), current_url();等等......我只是扩展了它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"/>
好的,这可能比您要查找的要多,但这是一种将站点范围的配置放在一个文件中的方法,然后可以轻松地使它们可用
在配置文件夹中有文件: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
现在到了很酷的部分——你放入该配置文件的任何内容都将可用于你的控制器和视图。(您也可以在模型构造函数中加载配置)。
在控制器或模型中,您可以通过 $this->config 获得值,例如
$this->config->item( 'site_slogan' )
有点尴尬,但是对于视图,这是奖励,您只需要配置名称
echo $TEMPLATE_DIR . '/somefile' ;
图片、css、javascript、pdfs、xml……任何允许直接访问的东西都不应该存在于您的应用程序目录中。你可以这样做,但你真的不应该这样做。在您的目录根目录下为这些文件创建一个新文件夹,它们不应混入您的应用程序中,例如:在您的视图文件夹中。
很有可能,您正在使用 .htaccess 文件,该文件只允许通过 http 访问某些目录。出于安全原因,这非常好,您希望停止任何直接访问控制器和模型的尝试。这也是为什么我们检查 BASEPATH 是否定义在大多数文件的顶部,如果没有定义则 exit('No direct script access.')。
要获得这些资源(js/css/images)的正确路径,您不能使用相对路径,因为我们没有使用正常的目录结构。url /users/login 没有从目录 /users/login 加载文件,它可能甚至不存在。这些只是引导程序用来知道要使用哪个类、方法和参数的 uri 段。要获得正确的路径,请使用正斜杠(假设您的应用程序和资产位于根目录中,而不是子目录中),如下所示:
或者你最好的选择,使用绝对网址:
// 引用你的 $config['base_url'] " /> 等价于:
http://mydomain.com/images/myimage.jpg CI 中内置了一些帮助程序,您也可以选择使用它们,但这就是您需要知道的全部内容。