繁体   English   中英

CodeIgniter - 从控制器中的另一个函数加载视图

[英]CodeIgniter - Loading a view from another function in the controller

这是问题所在:

如果我打电话给www.mysite.com/quizz ,它会加载我的'quizz'页面。

但如果我打电话给www.mysite.com/quizz/start (包含相同的代码),由于链接断开(图片,css,...),视图会搞砸

这是内容:

public function index()
{
       $this->load->helper('quizzsettings');
       $data['questions'] = getSettings();
       $this->load->view('head'); 
       $this->load->view('quizz', $data);
}

如果我打电话给另一个功能( www.mysite.com/quizz/start ),布局将失败:

public function start()
{
       $this->load->helper('quizzsettings');
       $data['questions'] = getSettings();
       $this->load->view('head'); 
       $this->load->view('quizz', $data);
}

如您所知,CodeIgniter会像www.mysite.com/class/method一样读取URL,所以它应该是好的,对吧?

你可以调用$this->function(); 在你的方法,但不建议。 你所说的破碎的代码,从我的理解是HTML加载正常,但图像/ CSS等被破坏,因为你没有正确调用文件。

您可以发布一个“破碎”的HTML样本吗? (来自浏览器,在90%的浏览器中使用视图源或ctrl+U' or命令+ U`)

我建议你查看你的视图的HTML以及你如何加载图像和CSS文件,你应该设置。

查询请codeigniter URL帮助程序(它可能是文档中的URI帮助程序,不记得了)它们有一个简单的site_url()函数,我建议你使用...你可以通过site_url('controller / method')调用它)或site_url('3rdparty / jQuery / jQuery.min.js') - 适用于控制器方法和文件的很好的黑客攻击,你不必关心你在哪里安装软件

您想使用绝对路径调用CSS,JS和图像。 我怀疑你正在使用相对路径。 如果您还没有最好创建一个公共标题视图并使用base_url() 例如

<!-- Load CSS -->
<link type="text/css" rel="stylesheet" href="<?php echo base_url(); ?>css/style.css" />

<!-- Load JS -->
<script type="text/javascript" src="<?php echo base_url(); ?>js/script.js"></script>

显然,更改文件的路径以使您的安装正确

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM