大家帮我分析一下原因,为啥base标签不管用了呢
我的项目中默认控制器是welcome,默认action是 index();代码如下:
<?php
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('welcome_message');
}
}
我的视图文件welcome-message.php里使用了base标签,像这样:
<!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标签没有起作用,这是为啥呢?该怎么解决啊?~
如果是 CI 2.0 以上版本,应该是服务器配置有问题。
是 apache 吗? 改为<base href="<?php echo base_url() ?>" />
不过我觉得还是直接把url写到js和css的路径里好 这个还真不知道 来看看学习下 是的,的确是这样写就可以了:<base href="<?php echo base_url() ?>" />,
base标签 没有 url 属性,我自创了一个 url 属性,呵呵~
我用base标签主要是觉得这样管理比较方便,包括页面中的img 的 src属性 中图片的路径,css中设置的背景图片的路径,什么的,都可以得到一个基准的前缀,每个图片只需要写相对路径就好了,比如 <img src='images/pic1.jpg'>,就能找到http://localhost/shekong/images/pic1.jpg.
恩,主要是这么考虑的。 星阁 发表于 2011-11-9 23:07 static/image/common/back.gif
是的,的确是这样写就可以了:
:handshake借鉴了 ~~~~
页:
[1]