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


CodeIgniter : Included JS or CSS in view folder

我在文件夹视图编码器中包含JS或CSS,但经验丰富

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">
然后出现错误" "

NetworkError: 403 Forbidden

请各位大师解答。

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

解决这个问题的最简单方法是在应用程序根目录中创建一个新目录,如下所示:

-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 helperconfig/autoload.php中启用,如下所示:

$autoload['helper'] = array('url');

想知道这背后的原因:

发生这种情况的原因是你的应用程序从index.php在你的应用程序根作为CI实现前端控制器设计模式的输出。

所以我们不需要把我们的公共资产放在应用程序的任何地方,这就是为什么CI限制从公共访问直接访问applicationsystem文件夹。

在您的视图中,您不能在其上放置资产或支持文件。编码器的错误文件结构。您可以在根目录下设置一个文件夹名为asssets,并按照以下步骤操作。

你可以在constraints.php on config folder ....上添加url路径在常量上定义url:

注意: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/');

然后你可以简单地通过on view或header

<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>

CodeIgniter在/application目录下有一个。htaccess,其中包含

Deny from all

你需要删除这个文件或改变它的规则集从任何地方访问js/css文件等

application/*
允许完全访问应用程序是不明智的。

如果它是你的要求有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);