我正在为CodeIgniter编写代码,我想应用一个css模板。我发现了一个我喜欢的并下载它。
将css代码与合并前的代码合并后,我发现css模板使用的图像没有加载。最初他们应该留在html文件夹的根目录(或www,或者public_html,你知道我的意思......),但是我把它们放在与系统文件夹相同级别的资源文件夹下。
像这样......
Website Folder
|
|---application\
|-----(CodeIgniter application folders...)
|---assets\
|-----style.css
|-----css\
|-------mini.css
|-----images\
|-----js\
|-----robots.txt
|---system
|-----(CodeIgniter system folder...)
|index.php
我用谷歌搜索了几个小时,然后我发现了this post(第5条)。我尝试OP所说的但它不起作用。
我可以自动加载url_helper添加
$autoload['helper'] = array('url');
到autoload.php文件。但是当我添加
<base href="<?php echo base_url() ?>"/>
图像仍然不存在。
原始的html文件有这一行
<link href="style.css" type="text/css" rel="stylesheet" />
所以,我猜我应该添加资产/所以它看起来像
<link href="assets/style.css" type="text/css" rel="stylesheet" />
但图像仍然缺失。
如果我将assets文件夹的内容移动到root,一切都很好,但当然,这不是一个好的做法AFAIK ......
我的base_url是
http://localhost/prog/nonsense/mvc/
在你问之前,是的,我确实读过.htacces解决方案,但我现在真的不想乱用.htaccess编辑。
在这里可以得到一点帮助。
答案 0 :(得分:2)
您检查.htaccess
吗?
必须有类似的东西:
RewriteCond $1 !^(index\.php|assets|upload|robots\.txt|.*\.css)
答案 1 :(得分:2)
我和你有同样的事情,我称之为:
<link href="<?=base_url('assets/style.css');?>" rel="stylesheet">
如果设置了base_url()
并且调用了url
助手,这对我有用。
我调用base_url()
,然后调用assets
文件夹,然后调用style.css
。 /
之后不需要base_url();?>
,因为base_url()
中有一个HTML
。
使用内置HTML功能的codeigniter的另一个选项:
此外,如果您查看this link,您会看到您可以使用base_url();
帮助程序并通过codeigniter的内置函数调用它。
这一次,你不应该$autoload['helper'] = array('url', 'html');
做:
<?=link_tag('assets/style.css');?>
然后在标题视图中添加:
<link href="http://localhost/prog/nonsense/mvc/assets/style.css" rel="stylesheet" type="text/css" />
它将输出到:
{{1}}
答案 2 :(得分:0)
base_url也可以用作link_tag:
<link href="<?php echo base_url('assets/style.css'); ?>" rel="stylesheet" type="text/css" />
也会起作用并保持代码清洁。
答案 3 :(得分:0)
是的!我刚在.htacces
文件中添加了以下行,它运行正常
RewriteCond $1 !^(index\.php|images|robots\.txt)
答案 4 :(得分:-1)
我只需在应用程序文件夹的 htacces 一侧添加一行
RewriteCond $1 !^(index\.php|images|robots\.txt)