CI-img函数没有';不起作用


CI - img function doesn't work

这是我第一次使用CI,当我尝试使用img()时,它不起作用。当我查看页面资源时,我发现调用图像的代码显示为这样的<img src="http://::1/lat2/asset/images/ci_logo2.gif" alt=""/>,我注意到主机不应该是::1,而是localhost。这就是为什么没有显示图像的原因。那么,如何解决呢?

这是我放在控制器文件夹上的c_view.php:

<?php
class c_view extends CI_Controller{
    function img(){
        $data["judulapp"]="Menampilkan Gambar Dengan img()";
        $this->load->view("v_cview_img",$data);
    }
}
?>

这是我放在视图文件夹上的v_cview_img.php

<html>
<head>
    <title><?=$judulapp;?></title>
</head>
<body>
    <h2><?=$judulapp;?></h2>
    echo img("asset/images/ci_logo2.gif")
    <br />
    <?=img("asset/images/ci_logo2.gif");?>
    <hr />
    <?=img("http://l.yimg.com/a/i/ww/met/unsupprtd_brwsr/yahoo_logo_id_083109.gif");?>
    <hr />
    <pre>
    $myimage=array(
        "src"=>"asset/images/ci_logo2.gif"
        ,"alt"=>"Logo CodeIgniter - Api menyala!"
        ,'width' => '200'
        ,'height' => '200'
        ,'title' => 'Logo CodeIgniter'
        );
    echo img($myimage)
    </pre>
    <?
    $myimage=array(
        "src"=>"asset/images/ci_logo2.gif"
        ,"alt"=>"Logo CodeIgniter - Api menyala!"
        ,'width' => '200'
        ,'height' => '200'
        ,'title' => 'Logo CodeIgniter'
        );
    echo img($myimage);
    ?>
    <br />
</body>
</html>

如果要执行此操作,则必须创建自定义URL Helper

在application/helpers文件夹中,创建一个名为My_url_helper.php的文件和此代码。

<?php
function theme_url($uri)
{
    $CI =& get_instance();
    return $CI->config->base_url('app/themes/'.$CI->config->item('theme').'/'.$uri);
}
function img($uri, $tag=false)
{
    if($tag)
    {
        return '<img src="'.theme_url('assets/images/'.$uri).'" alt="'.$tag.'">';// path where your image is stored.
    }
    else
    {
        return theme_url('assets/images/'.$uri);
    }
}

鉴于

<img id="logo" src="<?php echo img('logo.png'); ?>" alt="XYZ" />
                                    ^ name of the image you want to load.

您的服务器返回的是IPv6版本的localhost(::1),而不是IPv4版本(127.0.0.1),并且没有完全配置为处理IPv6。

这通常是由于/etc/hosts文件的设置造成的。尝试将/etc/hosts的第一个非注释行更改为以下行:

127.0.0.1       localhost

在您的代码中

$myimage=array(
    "src"=>"asset/images/ci_logo2.gif"
    ,"alt"=>"Logo CodeIgniter - Api menyala!"
    ,'width' => '200'
    ,'height' => '200'
    ,'title' => 'Logo CodeIgniter'
    );
echo img($myimage)

实际上这将在CakePHP中使用。对于Codeigniter,仅使用<img>标签

<img src="<?php echo base_url() ?>asset/images/ci_logo2.gif" alt="Logo CodeIgniter - Api menyala!" >

HTML5 中的<img>标签


为了在config.php 中使用base_url()

$config['base_url'] = ''; # keep empty