CodeIgniter:在视图文件夹中包含JS或CSS

时间:2015-08-20 04:54:20

标签: javascript php codeigniter

我在文件夹视图中包含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

请大师解决。

对不起,如果我的英语不好

4 个答案:

答案 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);