如何链接到文件并更改CodeIgniter中的基本URL?

时间:2013-11-21 18:14:36

标签: php html css codeigniter

您好我最近遇到过CI的一些问题。当我想将css文件链接到几乎任何东西时,我需要将它直接放到根文件夹中。如果我将文件移动到层次结构中的某个位置,它将不会加载它。这是我尝试链接此core_css.css时的示例。它会加载htdocs文件夹中的文件夹,但不加载css文件夹中的文件夹。

folder structure

作品:

<link href="<?php echo base_url(); ?>core_css.css" type="text/css" rel="stylesheet" />

不起作用:

<link href="<?php echo base_url(); ?>application/OBS/css/core_css.css" type="text/css" rel="stylesheet" />

我已经尝试将css归档到所有其他子文件夹并链接它们,但它只加载根目录中的那个。

我的第二个问题是,每当我尝试测试控制器时,我都需要通过index.php访问它,如下所示:

http://localhost:8888/index.php/test_controller

有没有办法摆脱将index.php放入网址的需要?

2 个答案:

答案 0 :(得分:1)

第一个问题:

在您的根网站目录中添加.htaccess文件,并从所有文件中写入允许,在此文件夹中,您的所有文件和所有文件夹都不会出错,禁止访问!像这样使用它:

<link href="<?php echo base_url(); ?>application/public/css/style.css" rel="stylesheet" type="text/css"  />

N.B: 我通常将我的所有文件放入应用程序根目录中的“assets”文件夹中,然后确保使用Asset_Helper为我指向这些文件。这就是CodeIgniter的建议。

第二个问题: 如果您使用Apache,请在根网站目录中放置一个.htaccess文件,其中包含以下内容:

RewriteEngine on
RewriteCond $1 !^(index\.php|[Javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

为了更好地理解,您可以通过此链接查看codeigniter URL部分 http://ellislab.com/codeigniter%20/user-guide/general/urls.html

另一个是http://snipplr.com/view/5966/codeigniter-htaccess/

答案 1 :(得分:0)

对于第二个问题:将以下内容放在CodeIgniter根文件夹(htdocs中)的.htaccess文件中:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

确保将$config['index_page']设置为空字符串,并相应地设置$config['base_url'](这两个选项位于/application/config/config.php内)

对于第一个问题:尝试创建一个名为assets的文件夹或类似的文件夹,并将其放在网站的根目录中(再次在htdocs内)。将您的css文件移到那里,然后访问http://localhost:8888/assets/core_css.css尝试访问它。

此外,如果您使用的是Linux机箱,请确保您要访问的文件夹具有读取权限。