将css文件夹和图像文件夹放在哪里可以接受?我在视图文件夹里面思考?但是,控制器总是将路径重新路由到基本URL,因此我必须将.html文件中的路径指定到它所在的位置,这是多余的。
答案 0 :(得分:185)
我有这样的设置:
然后我有一个辅助函数,根据我的设置简单地返回完整路径,类似于:
<强>应用/助手/ utility_helper.php:强>
function asset_url(){
return base_url().'assets/';
}
我通常会在同一个文件中保留与此类似的常用例程,并使用codeigniter的自动加载配置自动加载它。
注意:
base_url()
访问的自动加载网址助手。
<强>应用/配置/ autoload.php:强>
$autoload['helper'] = array('url','utility');
然后,您可以在整个代码中访问asset_url()
。
答案 1 :(得分:48)
不,在views文件夹里面不好。
查找: 您的项目必须有3个基本文件夹:
系统 //这是CI框架,触摸此文件的理由不多
应用程序 //这是您的逻辑所在,构成应用程序的文件,
公开 // 这必须是你的文件
出于安全原因,最好将框架和应用程序保留在文档之外(public_html,htdocs,public,www ...等)
在公共文件夹中,您应该提供公开信息,浏览器可以看到的内容,以及查找文件夹的常见信息:images,js,css;所以你的结构将是:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
答案 2 :(得分:14)
这就是我处理公共资产的方式。在这里,我使用 Phalcon PHP 的Bootstrap方法。
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
<强> .htaccess*
强>
对项目的所有请求都将重写为 public / 目录 使它成为文档根目录。这一步确保内部 项目文件夹保持隐藏不被公众查看,从而消除 这种安全威胁。 - Phalconphp Doc
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
<强> .htaccess**
强>
规则将检查所请求的文件是否存在,如果存在,则检查它是否存在 不必由Web服务器模块重写。 - Phalconphp 文件强> 的
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>
<强> index.php***
强>
修改 application
路径和 system
路径,
$system_path = '../system';
$application_folder = '../application';
现在您将 public
文件夹用作 base_url()."public/[YOUR ASSET FOLDER]"
希望这会有所帮助:)
答案 3 :(得分:11)
我通常将我的所有文件放入应用程序根目录中的“assets”文件夹中,然后确保使用Asset_Helper为我指向这些文件。这就是CodeIgniter的建议。
答案 4 :(得分:7)
没有人说你需要修改.htacces并在重写条件下添加目录。 我在根目录中创建了一个目录“public”以及“system”,“application”,“index.php”。并编辑了.htaccess文件,如下所示:
RewriteCond $1 !^(index\.php|public|robots\.txt)
现在你必须致电<?php echo base_url()."/public/yourdirectory/yuorfile";?>
您可以根据需要在“public”目录中添加子目录。
答案 5 :(得分:4)
无论你把CSS文件放在哪里,你都可以简单地使用CodeIgniter&#34; html&#34; helper名为link_tag()。您可以应用这样的帮助:
echo link_tag('folder/subfolder/stylesheet.css');
由您决定将CSS文件放在最合适的位置(在您看来)。您必须自动加载&#34; html&#34;帮助或单独加载它以使用它。
人们一直建议使用base_url()来实现这一点,但实际上并不是&#34; CodeIgniter&#34;这样做的方式(我认为这个问题有一些重复)。这将起作用,但使用框架的原因之一是使用其中的预制函数。
codeigniter中有许多助手来做这种事情。
答案 6 :(得分:4)
添加一个文件夹,例如public,添加 .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>
答案 7 :(得分:3)
我正在使用最新版本的CodeIgniter 3.1.0。 它的文件夹结构是:
这就是你应该将images,css和js文件放在assets文件夹中的位置。
答案 8 :(得分:2)
您可以将css文件夹放在项目目录中的assest文件夹(您可以将其命名为任意名称)内,如下所示:
ci_app
应用程序
查看
资产
canActivate
...
当您想在页面中加载该文件时,可以按以下方式使用base_url()函数:
css
style.css
并确保将您项目的base_url添加到config.php文件中,如下所示:
<head>
<link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'>
</head>
答案 9 :(得分:1)
(我是Codeigniter的新手,所以我不知道这是否是最好的建议)
我在公共文件夹中保留了公开可用的文件。 他们在那里是合乎逻辑的,我不想将Codeigniter用于我不需要使用它的东西。
目录树看起来像这样:
我保留在/ 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]
答案 10 :(得分:0)
您好我们的结构就像 应用程序,系统,user_guide
在所有文件夹附近创建文件夹名称资产,然后在此资源文件夹中创建css和javascript和images文件夹 把你所有的css js放在文件夹中
现在转到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">
答案 11 :(得分:0)
我只是想补充一点,这个问题可能更简单-
这个问题我已经花了好几个小时了-我已经阅读了所有解决方案,但没有任何效果。然后,我设法检查了实际的文件名。
我有“ image.jpg.jpg
”而不是“ image.jpg
”。
如果使用$ ls public/..path to image assets../
,则可以快速检查文件名。
听起来很愚蠢,但在这里给出所有技术建议后,我从没想过要像文件名那样简单。
答案 12 :(得分:-2)
link_tag()
帮助显然是这样做的方法。将你的css放在它通常所属的位置,在site_root / css /中,然后使用帮助器:
echo link_tag('css/mystyles.css');
输出
<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />