在 Codeigniter 我应该把图片文件,css,js 等放在哪里?

把 css 文件夹和图像文件夹放在哪里是可以接受的?我在想在风景文件夹里面?但是,控制器总是将路径重新路由到基 URL,因此我必须在。Html 文件到它所在的位置,这是多余的。

140096 次浏览

我通常将所有这样的文件放到应用程序根目录中的“资产”文件夹中,然后确保使用 资产 _ 帮手为我指向这些文件。这就是 CodeIgniter 的建议。

我有一个这样的设置:

  • 申请
  • 系统
  • 资产
    • JS
    • 图像
    • CSS

然后我有一个 helper 函数,它根据我的设置返回完整的路径,类似于:

Application/helpers/tility _ helper. php:

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

我通常会在同一个文件中保留类似的常见例程,并使用 codeigniter 的 autoload 配置自动加载它。

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

Application/config/autoload.php:

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

然后,您就可以在整个代码中访问 asset_url()

不行,视图文件夹里面不行。

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

System < em >//这是 CI 框架,没有太多理由去触摸这个文件

申请表格 //这就是您的逻辑所在,构成应用程序的文件,

Public //< em > 这必须是您的文档根目录

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

在你的公共文件夹中,你应该把你的公共信息,浏览器可以看到什么,找到文件夹是很常见的: 图片,js,css; 所以你的结构应该是:

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

没有人说需要修改.htacces 并在重写条件下添加目录。 我在根目录中创建了一个目录“ 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');

这取决于您在最合适的位置找到 CSS 文件(在您看来)。您必须自动加载“ html”助手,或者单独加载它才能使用它。

人们一直建议使用 base _ url ()来实现这一点,但实际上它并不是真正的“ CodeIgniter”方式(我认为这个问题有一些重复)。这将工作,但使用框架的原因之一是使用其中的预制功能。

在解码器中有很多帮手来做这种事情。

添加一个文件夹任何名称 e.g 公开,并添加 . 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>

这是我处理公共资产的方式,在这里我使用的是 ABc0的自助法。

文件夹结构

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

要编辑的文件

  1. .htaccess*

    对该项目的所有请求都将重写到 公众人士/目录 使其成为文档根目录。此步骤确保内部 项目文件夹对公众查看保持隐藏,从而消除 这种安全威胁

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

    Rules will check if the requested file exists and, if it does, it doesn’t have to be rewritten by the web server module. - 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***

    Modify the application path and the system path as,

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

Now you use the public folder as base_url()."public/[YOUR ASSET FOLDER]"

Hope this helps :)

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

我将公共可用文件保存在公用文件夹中。 他们在那里是合乎逻辑的,我不想使用 Codeigniter 做一些我不需要的事情。

目录树如下所示:

  • /申请/
  • 公众人士
  • /public/css/
  • /public/img/
  • /public/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]

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" />

我使用以下文件夹结构:

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

嗨,我们的结构是这样的 应用程序、系统、用户指南

创建一个文件夹名称资产就在所有的文件夹附近,然后在这个资产文件夹创建 css 和 javascript 和图像文件夹 把你所有的 css 放到文件夹里

现在转到 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">

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

  • 系统
  • 申请
  • User _ guide
  • 资产
    • 影像
    • JS
    • CSS

这就是您应该将图像、 css 和 js 文件放在 Asset 文件夹中的位置。

您可以将 css 文件夹放在您的项目目录中的 assest 文件夹(您可以任意命名它)中,如下所示:

- ci_app
- application
- views
- assets
- css
- style.css

当您希望在页面中加载该文件时,可以按以下方式使用 base _ url ()函数: < 头 > < link rel = ‘ stylesheet’href =’< ? php echo base _ url () ; ? > asset/css/style.css’> 并且您一定要在 config.php 文件中添加您的项目的 base _ url,如下所示:

$config['base_url'] = 'http://localhost/ci_app';

我只是想补充说,问题可能更简单-

我已经为这个问题挠头好几个小时了——我读了所有的解决方案,没有一个奏效。然后我设法检查了实际的文件名。

我得的是“ image.jpg.jpg”而不是“ image.jpg”。

如果使用 $ ls public/..path to image assets../,可以快速检查文件名。

听起来很愚蠢,但是我从来没有想过看一些如此简单的文件名给予所有的技术建议在这里。