Codeigniter——包含在application/libraries文件夹(script标签)中的javascri

Codeigniter - Include javascript that is inside the application/libraries folder (script tag)

本文关键字:标签 script 中的 javascri libraries 包含 application Codeigniter 文件夹      更新时间:2023-09-26

对于下面的问题我想不出解决办法。假设我有一个库(.php)文件,我把它放在codeigniter的库文件夹中,但这个库有一些与之相关的javascript:我有一个库"grid.php",它有"grid.js"。当我加载库grid

<script src="base_url(). 'application/libraries/grid/grid.js'></script>

在我使用网格的页面中显示。问题是"。js"文件被禁止访问,因此不能使用。我不想把我的网格在codeigniter的根级别,因为我将无法加载它$this->load->库('grid'),我不想把我的js文件手动移动到根,然后手动包括它们,每次我使用网格,我只是想复制和粘贴网格文件夹到每个项目,我需要,当我使用它,它会自动包括js链接。请帮帮我:)

我看到"Deny all".htaccess文件驻留在应用程序和系统文件夹中,但我也不想删除它(如果它导致问题):D

我看到"Deny all".htaccess文件驻留在应用程序和系统文件夹中,但我也不想删除它(如果它导致问题):D

你不想删除它是好的,它有助于保持你的应用程序(和敏感信息,如DB密码)不可访问的http。然而,这正是你不能以这种方式访问javascript文件的原因。

你必须咬紧牙关。把js文件移到一个可访问的目录。

如果你使用的是PHP,我不明白为什么你必须手动编写标签——你可能想要考虑编写或采用某种模板/资产库,其他库可以"挂钩",并动态地将js/css添加到模板中。

快速的例子:

class Template {
    private $js;
    function add_js($src)
    {
        $this->js[] = $src;
    }
    function get_js()
    {
        $out = '';
        foreach ($this->js as $src)
        {
            $out .= '<script src="'.$src.'"></script>';
        }
        return $out;
    }
}

  • 确保Grid可以访问CI实例。最常见的方法是:在__construct()中给Grid的类属性赋一个引用。

    $this->CI =& get_instance();
    
  • 从网格库中添加脚本:

    $this->CI->template->add_js('/path/to/grid.js')
    
  • 在你的HTML模板中,调用$this->template->get_js()打印标签