在CodeIgniter项目中,资产应该放在哪里?

2022-08-30 22:15:06

我刚刚开始使用CodeIgniter,我不确定css,js和图像等东西应该去哪里。在整个系统文件夹之外似乎没问题,但这意味着一切都是分开的。内部意味着文件路径更长,我担心它可能会把事情搞砸。此问题的最佳做法是什么?


答案 1

我通常在根级别放置单独的文件夹,因此我最终得到如下目录结构:

/system
/css
/js
/img

似乎对我有用 - 当你使用时,它生成的URL来自根目录,所以你可以用来生成样式表等的URL。site_url(url)site_url('css/file.css')


答案 2

就个人而言,我将目录从目录中删除,并使其成为 .然后,我创建一个项目目录,在其中移动索引.php并存储我的公共资产。applicationsystemsystempublic_html (www)

假设您正在处理的项目称为 。在父目录中创建一个名为 的目录,并在该目录中从您正在使用的版本创建一个目录,等等。projektpublic_html (www)CISYSTEM202210

/CISYSTEM
    /202
    /210
    /another_CI_version
/projekt_application
    /models
    /views
    /controllers
    /private_assets
/public_html
    /projekt
        index.php
        .htaccess
        css
        img
        js
        lib

这种目录结构的美妙之处在于它增加了另一层安全性,使升级/交换CI核心变得非常容易。另外,你不应该对核心进行更改 - 有一个存储核心的目录,并让所有项目引用它,它保持干燥。

所有这些目录洗牌都需要您重新路由一些事情。幸运的是,CodeIgniter使它变得容易 - 所有更改都可以在文件中进行。index.php

打开并重新路由一些操作:index.php

改变:$system_path = 'system';

自:$system_path = '../../CISYSTEM/210';

改变:$application_folder = 'application';

自:$application_folder = '../../projekt_application';


另外,我看到很多人在其他答案中谈论使用。我推荐一种不那么冗长的使用方式...如果你使用HTML的元素,你不必每次都调用它:site_url()site_url()<base>

<base href="<?= site_url();?>">

只需将其包含在应用程序中,即可直接调用控制器...如:<head>

<a href='controllername/functionname'>Some Action</a>

干杯


推荐