【发布时间】:2015-10-28 15:24:27
【问题描述】:
我第一次使用 CodeIgniter 2.0 创建一个主页包含幻灯片的多语言站点。我正在我的笔记本电脑上开发它 - localhost/website/。
我正在使用 routes.php 文件来指定调用哪个语言函数来设置变量,具体取决于格式为 http://localhost/website/language/page_id/some-page-title 的 url。因此http://localhost/website/en/1/Home-Page 给出了page_id 1 的英文页面。
Routes 文件因此具有:
$route['default_controller'] = "content";
$route['en/(:num)/(:any)'] = "content/en/$1";
$route['de/(:num)/(:any)'] = "content/de/$1";
$route['es/(:num)/(:any)'] = "content/es/$1";
etc
内容控制器中的语言函数(en 函数)的示例是:
public function en ($page_id) {
$language="en";
$lang_array['css']="base.css";
$this->get_content($page_id, $lang_array);
}
然后 get_content 函数会做所有事情。
内容控制器的索引函数看起来像这样:
public function index() {
//setting defaults for when arrive straight at home page or with no language in url
$page_id=1;
$lang_array['language']="en";
$lang_array['css']="base.css";
$this->get_content($page_id, $language);
}
我的问题是,当我转到 http;//localhost/website/ 时,一切正常,包括幻灯片。但是,当我转到 url http://localhost/website/en/1/Home-Page 时,一切正常,除了幻灯片中的图片不出现(即使它们都执行相同的代码并且当我查看页面上的视图源时,html 输出是相同的)。
我唯一能想到的事实是,如果我只输入http;//localhost/website/,那么将调用激活构造函数的索引函数,但如果我输入http://localhost/website/en/1/Home-Page,则绕过索引和构造函数。但是不知道为什么其他事情仍然有效,但图片幻灯片却没有。这是你认为的原因吗?有什么解决办法吗?
谢谢
汤姆
【问题讨论】:
-
真正吓到我的是两个 url(简单的根 url 和带有语言组件的 url)的输出代码完全相同。图像等的链接完全相同,并且还使用 base_url() 来解决路径问题。如此迷茫。两段相同的html如何显示不同的结果?
标签: php codeigniter