我是MVC学习的新手,在搜索基本内容后,我发现了几个关于这个问题/主题的意见,但每个人都有不同的状态和指示...
有谁知道在Codeigniter中放置资产(js / css / img)文件的最佳位置是什么?
我发现有些人说要把它放在视图文件夹中,有人在webroot中(在创建资产文件夹之后),有人在应用程序文件夹中等等所以我真的很困惑..这真的取决于用户是谁开发应用程序(所以每个人都把它放在不同的地方)或者是否有一个基本的“遵循规则”?
Codeigniter的任何专家都能发布正确的答案,并解释包含这些资产的最佳方式是什么以及为什么这样做?
答案 0 :(得分:1)
我已将它们添加到与inc
,application
和system
相同的目录中名为user_guide
的文件中(尽管我将user_guide
删除为它一上升到服务器上。)
确保您已设置base_url
,以便您可以更轻松地调用它(并自动加载url
加载程序!)。
然后当我打电话时,我使用<?=base_url();?>inc/css/styles.css
<link rel="stylesheet" href="<?=base_url();?>inc/css/styles.css
或
<link rel="stylesheet" href="<?php echo base_url(); ?>inc/css/styles.css
我的模板将如下所示:
--application
--system
--inc
-- css
-- style.css
-- js
-- scripts.ks
-- images
-- logo.png
答案 1 :(得分:1)
通常,当我启动一个新的CodeIgniter项目时,我会创建一个名为public
的文件夹,然后将index.php文件移到那里。通过这样做,这意味着应用程序和系统文件夹不在同一级别。
在我的application / config / config.php文件中,我添加了base_url
$config['base_url'] = 'http://exmaple.com/codeigniter/public/";
在public
文件夹中,我创建了名为js
,css
和images
的文件夹。所以我的结构看起来像
-- application
-- system
-- public
-- css
-- js
-- images
-- index.php
然后在我的模板中,我可以通过
来包含它们<link rel="stylesheet" href="<?php echo base_url() ?>css/main.css" />
<script type="text/javascript" src="<?php echo base_url() ?>js/main.js"></script>
您绝对不应该将任何可公开访问的文件(样式表,图片等)放入应用程序或系统文件夹
答案 2 :(得分:1)
function css($filename) {
return '<link rel="stylesheet" type="text/css" href="' . config_item('base_url') .
'public/' . $filename . '.css">';
}
function js($filename) {
return '<script type="text/javascript" src="' . config_item('base_url') .
'public/' . $filename . '.js "></script>';
}
答案 3 :(得分:0)
归结为味道,在某种程度上,但我的谦虚建议是使用基本的引导模式,其后是许多框架,而不仅仅是codeigniter。看看如何根据主题(https://github.com/twbs/bootstrap)布置您的网站。
我并不认为自己是专家,但我建议一个团队非常简单易懂的事情:
/
/css
/js
/application
/bower_components
...
使用页面时,我不想考虑加载各种库和页面内容,我只想简单地使用页面。为此,我拆分内容,以便我可以使用以下调用加载它:
$this->load->view('site/header'); //Load the header and all the appropriate libs
$this->load->view('/users/edit', array('
'record' => $this->User->get($userid); //Work with the actual page
'));
$this->load->view('/site/footer'); //Close all the tags
通常,我将库放在根目录中,然后使用绝对路径将它们加载到视图中:
<html>
....
<head>
<script src="/js/bootstrap.min.js"></script>
<link href="/css/bootstrap.css" rel="stylesheet">
</head>
...
<body>
<navbar>
...
</navbar>
<div id="content">
</content>
... closing tags
</html>
在此处查看带有免费主题的空白回购设置:https://github.com/DesertLynx/blank_CI