CodeIgniter CSS上传到实际网站时显示404错误

时间:2016-09-09 15:38:14

标签: php .htaccess codeigniter mod-rewrite

背景

这是我第二次尝试将CodeIgniter网站上传到我的服务器...我已经尝试了所有最重要的建议来实现这一点,但无济于事!

我正在将codeigniter上传到我的https://example.com/app

我正在使用具有codeigniter的HMVC模块,但这不应该导致这些问题。

问题

我的CSS文件拒绝加载,它们显示404错误。

这是我的文件夹结构:

enter image description here

以下是我在HTML模板中加载文件的方法......

        <link rel="stylesheet" href="<?php echo base_url() . 'public/css/bootstrap.css'; ?>">
        <link rel="stylesheet" href="<?php echo base_url() . 'public/css/font-awesome.css'; ?>">
        <link rel="stylesheet" href="<?php echo base_url() . 'public/css/custom.css'; ?>">

这是我的base_url()配置......

$config['base_url'] = 'https://toucan-talk.com/app/';

这是我的.htaccess文件(目前,我尝试过几种不同的设置)。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

我不确定这里出了什么问题!

1 个答案:

答案 0 :(得分:2)

问题是base_url()会返回https://toucan-talk.com/app/,当您添加css文件夹时,您会获得https://toucan-talk.com/app/public/css/bootstrap.css这不是有效路径。

最简单的解决方法是移动公用文件夹,使其成为app /.

的子文件夹

另一个选项是修改从base_url()返回的字符串并修改它以创建正确的路径。

第一行代码将https://toucan-talk.com/app/转换为https://toucan-talk.com/Public/css/

<?php
$css_path = str_replace('app', 'Public/css/', base_url());
?>
<link rel="stylesheet" href="<?php echo $css_path;?>bootstrap.css">
<link rel="stylesheet" href="<?php echo $css_path;?>font-awesome.css">
<link rel="stylesheet" href="<?php echo $css_path;?>custom.css'; ?>">