用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4161|回复: 5
收起左侧

[版本 2.x] 大家帮我分析一下原因,为啥base标签不管用了呢

[复制链接]
发表于 2011-11-9 17:55:26 | 显示全部楼层 |阅读模式
我的项目中默认控制器是welcome,默认action是 index();
代码如下:
PHP复制代码
 
<?php
class Welcome extends CI_Controller {
 
        function __construct()
        {
                parent::__construct();
        }
 
        function index()
        {
                $this->load->view('welcome_message');
        }
}
 
复制代码

我的视图文件welcome-message.php里使用了base标签,像这样:
HTML复制代码
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8">
        <title>Welcome to CodeIgniter</title>
        <base url ="<?= base_url() ?> "></base>
        <link type="text/css" rel="stylesheet" href="css/style.css" />
    </head>
 
复制代码

然后在浏览器里浏览项目路径http://localhost/shekong/
由于设置了base url属性,网页的css文件能够找到,样式表加载上了,可以正常浏览。
如果把访问路径改成 http://localhost/shekong/index.php,也是没有问题,
但是如果访问路径改成 http://localhost/shekong/index.php/welcome/
或者 http://localhost/shekong/index.php/welcome/index 的话
网页可以显示,但是css文件没有加载成功,用火狐查看,发现提示我没有找到
http://localhost/shekong/index.php/welcome/index/css/style.css
说明base标签没有起作用,这是为啥呢?该怎么解决啊?~
发表于 2011-11-9 19:09:49 | 显示全部楼层
如果是 CI 2.0 以上版本,应该是服务器配置有问题。
是 apache 吗?
发表于 2011-11-9 19:16:12 | 显示全部楼层
改为<base href="<?php echo base_url() ?>" />
不过我觉得还是直接把url写到js和css的路径里好
发表于 2011-11-9 21:26:41 | 显示全部楼层
这个还真不知道 来看看学习下
 楼主| 发表于 2011-11-9 23:07:59 | 显示全部楼层
是的,的确是这样写就可以了:<base href="<?php echo base_url() ?>" />,
base标签 没有 url 属性,我自创了一个 url 属性,呵呵~
我用base标签主要是觉得这样管理比较方便,包括页面中的img 的 src属性 中图片的路径,css中设置的背景图片的路径,什么的,都可以得到一个基准的前缀,每个图片只需要写相对路径就好了,比如
HTML复制代码
<img src='images/pic1.jpg'>
复制代码
,就能找到http://localhost/shekong/images/pic1.jpg.
恩,主要是这么考虑的。
发表于 2011-11-9 23:29:57 | 显示全部楼层
星阁 发表于 2011-11-9 23:07
是的,的确是这样写就可以了:

借鉴了 ~~~~

本版积分规则