我在哪里可以在Codeigniter中放置图像文件,css,js等?

把css文件夹和图像文件夹放在哪里可以接受? 我在想视图文件夹里面? 然而,控制器总是将path重新路由到基本URL,所以我必须指定.html文件中的path到它所在的位置,这是多余的。

我有这样的设置:

  • 应用
  • 系统
  • 资产
    • JS
    • IMGS
    • CSS

然后我有一个帮助函数,只是返回完整的path取决于我的设置,类似于:

应用程序/佣工/ utility_helper.php:

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

我通常会在同一个文件中保存类似于此的常用例程,并使用codeigniter的自动加载configuration自动加载它。

注意:为base_url()访问自动加载URL助手。

的application / config / autoload.php:

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

您将可以在整个代码中访问asset_url()

不,里面的意见文件夹不好。

看:您的项目中必须有3个基本文件夹:

系统/ / 这是CI框架没有太多的理由来触摸这个文件

应用程序 //这是你的逻辑去的地方,使应用程序的文件

公共 // 这必须是你的documentroot

出于安全原因,最好将您的框架和应用程序保留在documentroot之外(public_html,htdocs,public,www …等)

在你的公共文件夹中,你应该把你的公共信息,浏览器可以看到,它的常见的find文件夹:图像,JS,CSS; 所以你的结构将是:

 |- system/ |- application/ |---- models/ |---- views/ |---- controllers/ |- public/ |---- images/ |---- js/ |---- css/ |---- index.php |---- .htaccess 

这是我如何处理公共资产。 这里我使用Phalcon PHP的Bootstrap方法。

文件夹结构

 |-.htaccess* |-application/ |-public/ |-.htaccess** |-index.php*** |-css/ |-js/ |-img/ |-font/ |-upload/ |-system 

要编辑的文件

  1. .htaccess*

    所有对该项目的请求将被重写到公共/目录,使其成为文档根目录。 此步骤可确保内部项目文件夹保持隐藏状态,从而消除了这种安全威胁。 Phalconphp Doc

     <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule> 
  2. .htaccess**

    规则将检查请求的文件是否存在,如果存在,则不必由Web服务器模块重写。 Phalconphp Doc

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

    修改applicationpath和systempath为,

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

现在,您使用公用文件夹作为base_url()."public/[YOUR ASSET FOLDER]"

希望这可以帮助 :)

我通常把所有这些文件放到应用程序根目录下的“assets”文件夹中,然后确保使用Asset_Helper指向这些文件。 这是CodeIgniterbuild议的。

没有人说你需要修改.htacces并在重写条件下添加目录。 我在根目录下创build了一个名为“public”的目录,旁边是“system”,“application”,“index.php”。 并像这样编辑.htaccess文件:

 RewriteCond $1 !^(index\.php|public|robots\.txt) 

现在你只需要调用<?php echo base_url()."/public/yourdirectory/yuorfile";?>你可以在“public”目录下添加子目录。

无论您放置CSS文件的位置如何,您都可以简单地使用名为link_tag()的CodeIgniter“html”助手。 你会像这样应用这个帮手:

 echo link_tag('folder/subfolder/stylesheet.css'); 

您可以在最合适的位置findCSS文件(在您的意见中)。 你将不得不自动加载“HTML”助手或单独加载它来使用它。

人们不断暗示使用base_url()来实现这一点,但实际上并不是真正的“CodeIgniter”方式(我认为这个问题有一些重复)。 这将起作用,但使用框架的原因之一是使用其中的预制function。

codeigniter中有很多helper来做这种事情。

添加一个文件夹任何名称,如公共和添加.htaccess文件,并允许从所有这意味着,在这个文件夹中的所有文件和所有文件夹不会给错误访问禁止! 像这样使用它

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

(我是Codeigniter的新手,所以我不知道这是否是最好的build议)

我公开的文件夹中公开可用的文件。 他们在那里是合乎逻辑的,我不想使用Codeigniter来处理我不需要的东西。

目录树看起来像这样:

  • /应用/
  • /上市/
  • /公/ CSS /
  • /公/ IMG /
  • /公/ JS /
  • /系统/

我在/ public /中保存的唯一文件是Codeigniter的index.php和我的.htaccess文件:

 RewriteEngine On RewriteBase / RewriteRule ^css/ - [L] RewriteRule ^img/ - [L] RewriteRule ^js/ - [L] RewriteRule ^index.php(.*)$ - [L] RewriteRule ^(.*)$ /index.php?/$1 [L] 

我使用以下文件夹结构:

 application system static admin js css images public js css images uploads original thumbs 

我正在使用最新版本的CodeIgniter 3.1.0。 它的文件夹结构是:

  • 系统
  • 应用
  • 用户指南
  • 资产
    • 图片
    • JS
    • CSS

这就是你应该把图像,CSS和JS文件放在资产文件夹中的地方。

你好,我们的结构就像Application,system,user_guide

创build一个文件夹名称资产只是靠近所有的文件夹,然后在这个资产文件夹内创buildCSS和JavaScript和图像文件夹把所有的CSS js insiide文件夹

现在去header.php并像这样调用css。

 <link rel="stylesheet" href="<?php echo base_url();?>assets/css/touchTouch.css"> <link rel="stylesheet" href="<?php echo base_url();?>assets/css/style.css"> <link rel="stylesheet" href="<?php echo base_url();?>assets/css/camera.css"> 

link_tag()助手显然是这样做的。 把你的CSS放在它通常所属的site_root / css /中,然后使用helper:

来自CodeIgniter文档…

 echo link_tag('css/mystyles.css'); 

产量

 <link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />