27

我对 codeigniter 还很陌生,但我学得很好,我要添加一个css、images、js、...文件夹,但我不知道该放在哪里

有人告诉我创建一个“公共”文件夹

system
application
public
    css
    images

然后在你的 index.php (在公共文件夹中)进行相应的调整

$system_path = '../system'; $application_path = '../application';

但是当我这样做时,我得到一个 404(不是 ci 404,而是一个真正找不到的)

任何人都知道我可能做错了什么?谢谢!

4

3 回答 3

58

我有这个设置:

application
assets
system
.htaccess

在“assets”文件夹中,我有“img”或“js”等子文件夹。我还使用“实用程序助手”来帮助我指向该文件夹。

如果你想尝试它,你必须首先使用以下代码创建一个名为“utility_helper.php”的助手:

     <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

     if ( ! function_exists('asset_url()'))
     {
       function asset_url()
       {
          return base_url().'assets/';
       }
     }

并将其存储在

     application/helpers/

然后你必须自动加载那个助手,你去:

  application/config/autoload.php

并自动加载帮助程序(例如:)

  $autoload['helper'] = array('form', 'url', 'utility');

您还必须路由到该文件夹​​('application/config/routes.php')

       $route['assets/(:any)'] = 'assets/$1';

并有一个包含以下内容的 .htaccess 文件:

    RewriteEngine on
    RewriteCond $1 !^(index\.php|images|assets|robots\.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]

现在您可以简单地包含外部脚本,css 示例:

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

其中 css 是 assets 中的文件夹, style.css 是 css 文件。像这样:

   application
   assets
          css
              style.css
   system
于 2013-11-06T23:53:38.267 回答
12

另一个角度——我认为他们试图告诉你做什么——是将你的应用程序和系统文件夹从“公共”html文件夹上移一层。这样您的源文件就无法访问。因此,在 Mamp 中,公共文件夹称为 htdocs,在大多数 Web 托管中称为 html。

 /application/html/
 /system     /html/

 // your main index page is in the public html folder
 /.…..       /html/index.php 

 // an assets folder in the public html folder with css, img, etc folders
 /.……        /html/assets/css/
 /.……        /html/assets/img/

然后在您的 index.php 中,路径将向上一级

$system_path = '../system';
$application_folder = '../application';

奖金 - 这里有两个对我有很大帮助的提示。1)命名您的应用程序文件夹,然后您可以轻松地在不同版本之间切换,非常快速地“回滚”等。

 /app_alpha/html/
 /app_beta01/html/
 /app_beta02/html/

2) 将基本 url 放在 index.php 页面上——而不是放在配置中。

   $assign_to_config['base_url'] = 'https://awesomedomain.com'; 

这样你就可以拥有一个本地开发版本,单独的实时服务器版本——你永远不必担心过度编写基本 url,因为它在 index.php 页面上——而不是在配置中。

于 2013-11-07T00:18:57.987 回答
2

我会恢复您对 . 所做的更改index.php,因为在我看来它们是问题的根源。

我一直在为 CodeIgniter 使用类似的设置,我的所有图像、CSS 和 JS 都放在一个名为 的文件夹static中,实际上我所做的只是创建该文件夹并将文件放入其中,它们运行良好。如果您想index.php从您的 URL 中删除,您需要确保您的.htaccess文件不会为您的静态文件重写 URL。

于 2013-11-06T21:09:20.383 回答