问题在于:
如果我拨打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
之类的网址,所以它应该是好的,对吗?
答案 0 :(得分:1)
您可以在方法中调用$this->function();
,但不建议这样做。你所说的破碎的代码,根据我的理解是HTML加载得很好,但图像/ css等因为你没有正确调用文件而被破坏。
你能发布一个你得到的HTML样本吗?#34;破坏"请? (来自浏览器,在90%的浏览器中使用视图源或ctrl+U' or
命令+ U`)
我建议您查看您的视图的HTML以及如何加载图片和CSS文件,并且您应该设置。
查询请使用codeigniter URL帮助程序(它可能是文档中的URI帮助程序,不要记得),并且它们有一个简单的site_url()函数,我建议你使用...你可以通过site_url调用它( ' controller / method')或site_url(' 3rdparty / jQuery / jQuery.min.js') - 适用于控制器方法和文件的优秀黑客,你不会我必须关心你安装软件的位置
答案 1 :(得分:1)
您想使用绝对路径来调用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>
显然,将文件的路径更改为正确的安装