我在哪里可以在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
要编辑的文件
-
.htaccess*
所有对该项目的请求将被重写到公共/目录,使其成为文档根目录。 此步骤可确保内部项目文件夹保持隐藏状态,从而消除了这种安全威胁。 – Phalconphp Doc
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule>
-
.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>
-
index.php***
修改
application
path和system
path为,$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" />