Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter 模块化扩展CI锚定到资产_Codeigniter_Modular_Hmvc - Fatal编程技术网

Codeigniter 模块化扩展CI锚定到资产

Codeigniter 模块化扩展CI锚定到资产,codeigniter,modular,hmvc,Codeigniter,Modular,Hmvc,所以,我在mo制作了一个CMS,并使用模块化扩展HMVC CI 2.0。很可爱。我想知道如何将我的资产js、css、img与模块目录中的模块保持关联 问题是,我如何链接到这些资产?假设我正在使用模板引擎,并将js文件传递给特定页面以加载: $js[] = 'assets/js/my_js.js'; 我想我问的都是错的,但是有没有一种简单的方法可以使用当前模块的目录进行链接 提前感谢。目前CI或HMVC中没有为此内置任何内容 我不喜欢从应用程序目录中引用允许直接访问的文件,如images/js/

所以,我在mo制作了一个CMS,并使用模块化扩展HMVC CI 2.0。很可爱。我想知道如何将我的资产js、css、img与模块目录中的模块保持关联

问题是,我如何链接到这些资产?假设我正在使用模板引擎,并将js文件传递给特定页面以加载:

$js[] = 'assets/js/my_js.js';
我想我问的都是错的,但是有没有一种简单的方法可以使用当前模块的目录进行链接


提前感谢。

目前CI或HMVC中没有为此内置任何内容

我不喜欢从应用程序目录中引用允许直接访问的文件,如images/js/css。主要原因是:

我不想让任何人知道我的应用程序到底是什么样子的。通过直接从模块中引用文件,可以公开应用程序的目录结构

如果我没有使用HMVC,我永远不会这样做

现在必须允许通过.htaccess直接访问应用程序中的某些目录。出于安全考虑,我宁愿干脆不允许整个事情

我理解尽可能模块化的愿望,但对我来说,这不值得这么麻烦。我更喜欢在一个名为modules的公共文件夹中保留一个单独的目录复制我的应用程序/模块结构,该目录除了css、js、图像等资产外什么都没有


我会提供一些代码,但我不知道您是如何将js/css添加到视图中的——这可能与我的方式有很大不同。编写一个函数来检测当前模块、控制器或方法并自动更改资产文件夹是很容易的,但这可能会干扰其他共享资产。我建议编写一个完全独立的函数,用于从模块加载资产。

目前CI或HMVC中没有为此内置任何功能

我不喜欢从应用程序目录中引用允许直接访问的文件,如images/js/css。主要原因是:

我不想让任何人知道我的应用程序到底是什么样子的。通过直接从模块中引用文件,可以公开应用程序的目录结构

如果我没有使用HMVC,我永远不会这样做

现在必须允许通过.htaccess直接访问应用程序中的某些目录。出于安全考虑,我宁愿干脆不允许整个事情

我理解尽可能模块化的愿望,但对我来说,这不值得这么麻烦。我更喜欢在一个名为modules的公共文件夹中保留一个单独的目录复制我的应用程序/模块结构,该目录除了css、js、图像等资产外什么都没有


我会提供一些代码,但我不知道您是如何将js/css添加到视图中的——这可能与我的方式有很大不同。编写一个函数来检测当前模块、控制器或方法并自动更改资产文件夹是很容易的,但这可能会干扰其他共享资产。我建议编写一个完全独立的函数,用于从模块加载资产。

您所概述的正是我当前所做的工作—在一个资产文件中镜像模块目录结构,该文件与任何CI完全分离。我只是觉得这有点糟糕,如果所有模块都放在一起会更好。也就是说,我同意你所说的人们看到了这次行动的“勇气”。也许我会保持现状:你可以做的另一件事是使用某种缓存系统。您可以从module目录中读取js/css文件,如果愿意,可以组合文件,然后将一个包含内容的文件写入公共目录。令人恼火的是,您必须在更新时重写它,可以手动重写,也可以用filemtime缓存文件触发。时间缓存文件比当前文件旧。您概述的内容正是我当前所做的—将模块目录结构镜像到与任何CI完全分离的资产文件中。我只是觉得这有点糟糕,如果所有模块都放在一起会更好。也就是说,我同意你所说的人们看到了这次行动的“勇气”。也许我会保持现状:你可以做的另一件事是使用某种缓存系统。您可以从module目录中读取js/css文件,如果愿意,可以组合文件,然后将一个包含内容的文件写入公共目录。令人恼火的是,您必须在更新时重写它,可以是手动的,也可以是用filemtime缓存文件比当前文件旧。