【问题标题】:Background image disappearing after 2nd call to Codeigniter View第二次调用 Codeigniter 视图后背景图像消失
【发布时间】:2014-11-26 17:35:54
【问题描述】:

我正在开发 codeigniter。 我已经为我的主页设置了背景图片。 现在发生的情况是,当我点击主控制器时,调用了一个视图并且它工作正常,但是当我尝试从另一个函数中显式调用视图时,背景图像消失了,其他所有内容都保留在原地。

这是我在 header_view 顶部的内容,背景图像是从这里调用的。

<html lan="en">
<head>    
<style>
body {
    background-image: url("public/img/back1.jpg");
    background-repeat: no-repeat;
    background-position: right top;
}
</style>

这是我的控制器index()函数,当控制器被点击时自动调用。

public function index() { 
    $this->load->view('home/inc/header_view');
    $this->load->view('home/home_view');
    $this->load->view('home/inc/footer_view');
}

每次我点击控制器时都可以正常工作。

在我明确调用的控制器的另一个函数下方,它也调用与索引函数相同的视图,但在输出中缺少背景图像。

public function get_user() {
    $this->load->view('home/inc/header_view');
    $this->load->view('home/home_view');
    $this->load->view('home/inc/footer_view');
}

我不明白问题是什么,因为当我点击控制器时自动调用的 index() 函数与 get_user() 函数执行相同的操作,但为什么 get_user() 中的输出不正确。请帮忙。谢谢

【问题讨论】:

    标签: php css html codeigniter


    【解决方案1】:

    为了防止每次您转到不同页面时相关链接发生变化,您需要自动加载 uri 帮助程序并使用 base_url() 包装您的样式和脚本 url,如下所示:

    background-image: url("<?php base_url('relative/path/to/image.img'); ?>");
    

    【讨论】:

    • background-image: url("") 这就是我所做的,现在它没有在任何地方显示图像.
    • 您不需要包含“相对”,只需包含从站点根目录到您的图像的路径。 base_url() 提供http://example.com/,括号中的内容紧随其后,所以说base_url('public/img/back1.jpg'); 应该给你http://example.com/public/img/back1.jpg
    • 放回background-image: url("public/img/back1.jpg"),然后查看两个页面的源代码,看看两者的输出有什么变化……当你加载index()时,URL是@ 987654329@,但在 get_user() 上是 example.com/index.php/controller/get_user,这会破坏您样式中的相对 URL...您想查看哪个有效,然后每次都使该 URL 相同。
    • 基本上,当您使用example.com/controller 时,您指向的是example.com/controller/public/img/back1.jpg 的图像,但是当您使用example.com/controller/get_user 时,您指向的是@ 的图像987654335@,这不是一回事……也许试试site_url('public/img/back1.jpg')
    【解决方案2】:

    像这样在你的 application\config\config.php 文件中设置 baseurl

     $config['base_url']    = 'http:/example.com/';//make sure it is your main path
    

    现在像这样改变身体风格

    background-image: url("<?php echo base_url();?>public/img/back1.jpg");
    

    确保您有public/img 之类的文件夹,并且图片在此处 back1.jpg 希望对你有帮助

    【讨论】:

      【解决方案3】:

      使用base_url()函数Read more

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-17
        • 2012-03-03
        • 1970-01-01
        • 2016-12-19
        • 1970-01-01
        • 2017-07-11
        相关资源
        最近更新 更多