我有以下Codeigniter文件夹的目录结构。您可以看到我已将所有资产放在应用程序根目录的assets
文件夹中。
基本网址定义为
$ config ['base_url'] ='http://kamran.dev/Codeigniter/application/';
我尝试将其修改为
$ config ['base_url'] ='http://kamran.dev/Codeigniter/';
但这也不起作用。
任何人都可以看看,告诉我这里我做错了什么?
P.S。然后我从包含
的application
文件夹中删除了.htaccess文件
拒绝所有
这对我有用。但这似乎不是一个好主意。
答案 0 :(得分:3)
这里有多个选项。最简单的方法是将assets文件夹移动到与应用程序相同的级别,以便您的目录结构为:
由于assets文件夹不在.htaccess与Deny From All
的文件夹中,因此您的网络服务器不会阻止它。
或者,您可以使用以下规则在assets文件夹中添加.htaccess文件:
# /assets/.htaccess
Allow from all
我没有对此进行测试,但我认为它应该可行。
另一种选择是更改.htaccess并在assets文件夹上放置一个异常,但是在不编写备用规则来锁定所有不应该删除的文件夹的情况下移除Deny From All
是一个非常糟糕的想法(具有安全隐患)可以访问。
另外,将base_url
设置为包含应用程序,系统和资源目录的文件夹(此文件夹包含Codeigniter的bootstrap / front controller index.php)。
此外,我建议您使用base_url()函数回显您的网址:
base_url("assets/css/bootstrap.min.css");
或调用控制器/路径
base_url("controller/method");
base_url函数考虑了$config['index_page']
的值以及必要的前导/尾随斜杠。
答案 1 :(得分:1)
将您的base_url
更改为以下内容:
echo base_url("assets/css/file-name-here.css");
您希望将URL字符串传递给base_url
函数。这样,您可以将$config['base_url']
更改为您想要的任何内容,它会将字符串正确附加到该URL。
答案 2 :(得分:1)
作为严峻答案的补充。如果你有重写引擎,你应该在根.htaccess
中有以下内容<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [PT,L]
</IfModule>