未找到Codeigniter 404错误资产文件夹

时间:2015-11-10 13:17:07

标签: php .htaccess codeigniter

我的codeiginiter项目有问题。 我使用xamp,我在htdocs中有我的项目文件夹。 要查看我的项目,我必须输入http://localhost/myproject/ 我想在项目中添加一些资源,然后我将crete文件夹添加到文件夹中。

- htdocs
-- myproject 
---- application
-----controllers
-----models  
----- views
----- assets // folder with js, css ect
---- system
---- index.php
----  .htaccess

现在,当我想在specyfic视图中加载脚本时,就像这样

 <script src="../assets/js/app.js"></script>

我在控制台

中收到错误404
GET http://localhost/assets/app.js 

正如您所见,CodeIgniter希望从错误的位置下载资源。

我的htaccess看起来像这样:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ index.php/$1 [L]

3 个答案:

答案 0 :(得分:2)

拥有资产文件夹的地方错误。您的资源文件夹应位于主目录中,而不是您的应用程序目录中。由于应用程序中的htaccess文件阻止了css和图像等

放置资产

application
assets
assets > css
assets > images
assets > js
index.php
.htaccess <-- Main directory htaccess file

然后自动加载网址助手http://www.codeigniter.com/user_guide/helpers/url_helper.html

然后你就可以使用<?php echo base_url('assets/js/app.js');?>你不需要自动加载url帮助器,但它可以节省你的时间,否则你必须在你需要的每个控制器中加载它。

答案 1 :(得分:1)

codeigniter为此目的有一些功能,如:base_url() or site_url()

这些功能有一些区别,你可以看到它:

what is the difference between site_url() and base_url()?

你可以将它用于你的脚本src:

<?php
echo '<script src="'.base_url('assets/js/app.js').'"></script>';
?>

答案 2 :(得分:0)

尝试一次。这是访问脚本的更好方法

<script src="<?php echo site_url('assets/js/app.js'); ?>"></script>