[英]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.