tri*_*riq 139 frameworks codeigniter web-applications codeigniter-2
将css文件夹和图像文件夹放在哪里可以接受?我在视图文件夹里面思考?但是,控制器总是将路径重新路由到基本URL,因此我必须将.html文件中的路径指定到它所在的位置,这是多余的.
Edd*_*die 195
我有这样的设置:
然后我有一个辅助函数,它根据我的设置简单地返回完整的路径,类似于:
应用程序/佣工/ utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
Run Code Online (Sandbox Code Playgroud)
我通常会在同一个文件中保留与此类似的常用例程,并使用codeigniter的自动加载配置自动加载它.
注意:用于
base_url()访问的自动加载URL帮助程序.
的application/config/autoload.php:
$autoload['helper'] = array('url','utility');
Run Code Online (Sandbox Code Playgroud)
然后,您将可以访问asset_url()整个代码.
Jua*_* Jo 49
不,在views文件夹里面不好.
看:您的项目必须有3个基本文件夹:
system //这是CI框架没有太多理由触摸这个文件
应用程序 //这是你的逻辑所在,创建应用程序的文件,
public // 这必须是你的文件
出于安全原因,最好将框架和应用程序保留在文档之外(public_html,htdocs,public,www ...等)
在公共文件夹中,您应该提供公开信息,浏览器可以看到的内容,以及查找文件夹的常见信息:images,js,css; 所以你的结构将是:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
Run Code Online (Sandbox Code Playgroud)
Ija*_*een 16
这就是我处理公共资产的方式.这里我使用Phalcon PHP的Bootstrap方法.
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
Run Code Online (Sandbox Code Playgroud)
.htaccess*
对项目的所有请求都将被重写到public /目录,使其成为文档根目录.此步骤可确保内部项目文件夹对公共查看保持隐藏状态,从而消除此类安全威胁.- Phalconphp Doc
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud).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>
Run Code Online (Sandbox Code Playgroud)index.php***
将application路径和system路径修改为,
$system_path = '../system';
$application_folder = '../application';
Run Code Online (Sandbox Code Playgroud)现在您将该 public文件夹用作base_url()."public/[YOUR ASSET FOLDER]"
希望这可以帮助 :)
没有人说你需要修改.htacces并在重写条件下添加目录.我在根目录中创建了一个目录"public"以及"system","application","index.php".并编辑了.htaccess文件,如下所示:
RewriteCond $1 !^(index\.php|public|robots\.txt)
Run Code Online (Sandbox Code Playgroud)
现在您必须调用<?php echo base_url()."/public/yourdirectory/yuorfile";?>
您可以根据需要在"public"目录中添加子目录.
无论您将 CSS 文件放在哪里,您都可以简单地使用名为 link_tag() 的 CodeIgniter “html”帮助程序。你会应用这个助手是这样的:
echo link_tag('folder/subfolder/stylesheet.css');
Run Code Online (Sandbox Code Playgroud)
由您决定将 CSS 文件放置在最合适的位置(在您看来)。您必须自动加载“html”帮助程序或单独加载它才能使用它。
人们一直建议使用 base_url() 来实现这一点,但实际上这并不是真正的“CodeIgniter”方式(我认为这个问题有一些重复)。这会起作用,但使用框架的原因之一是使用其中的预制功能。
codeigniter中有很多助手可以做这种事情。
| 归档时间: |
|
| 查看次数: |
130369 次 |
| 最近记录: |