我在文件夹视图中包含JS或CSS codeigniter但是经历过
403错误,
如何解决?
示例代码:
<script type="text/javascript" src="<?php echo base_url() . APPPATH; ?>views/data/index.js">
或
<link type="text/css" rel="stylesheet" href="<?php echo base_url() . APPPATH; ?>views/data/index.css">
然后出现错误&#34;
NetworkError:403 Forbidden
请大师解决。
对不起,如果我的英语不好
答案 0 :(得分:1)
最简单回答您的问题是在您的应用程序根目录中创建新目录,如下所示:
-Your_Application
-application
-assets <-- Create this folder.
-css <-- Create this subfolder inside assets folder.
-js <-- Create this subfolder inside assets folder.
-script.js <-- Place your script files inside js folder.
-system
-index.php
现在您可以使用url helper访问您的css和js文件,如下所示:
<script src="<?php echo base_url('/assets/js/script.js'); ?>" ></script>
按照css的相同步骤,确保url helper
启用config/autoload.php
,如下所示:
$autoload['helper'] = array('url');
想知道背后的原因:
发生这种情况背后的原因是您的应用程序根据CI实现的前端控制器设计模式从应用程序根目录index.php
输出。
因此,我们无需将公共资源放置在应用程序内的任何位置,这就是CI限制从公共访问直接访问应用程序和系统文件夹的原因。
答案 1 :(得分:0)
在您的视图中,您不能拥有资产或支持文件。 codeigniter的错误文件结构。 您可以在根目录上使用文件夹名称 asssets ,然后按照以下步骤操作。
您可以在配置文件夹上的 constraints.php 上添加网址路径....您可以在常量上定义这样的网址:
NOte:xxx是您的网站名称
define('ROUTE_STIE_PATH','localhost/xxx/');
define('ADMIN_CSS_DIR_FULL_PATH',ROUTE_STIE_PATH.'assets/css/');
define('ADMIN_CSS_DIR_FULL_PATH',ROUTE_STIE_PATH.'assets/js/');
然后你可以只通过视图或标题回显
<link href="<?php echo ADMIN_CSS_DIR_FULL_PATH; ?>index.css" rel="stylesheet" type="text/css">
<script src="<?php echo ADMIN_JS_DIR_FULL_PATH; ?>index.js" type="text/javascript"></script>
答案 2 :(得分:0)
CodeIgniter在/ application目录中附带一个.htaccess,其中包含
Deny from all
您需要删除此文件或更改其规则集以从内部任何位置访问js / css文件等
application/*
然而,完全不允许访问应用程序是不可取的。
答案 3 :(得分:0)
如果您需要查看特定的js或css文件,而您想在视图中处理这些文件,则: 最简单的方法是,创建文件
xxxcss.php and xxxjs.php //put your js code or css style
根据需要定义变量
$data['variable']="Something"; // This is optional if you need pass php variable to your js or css before loading in page.
在控制器中加载视图并传递到另一个视图或直接在视图中加载
$this->load->view('css.php or js.php',$data);