7

我想将我的网站迁移到 CI。我只是简单地从 index() 函数中的 ci 示例文件 welcome.php 修改,我加载要显示的视图。但是,我在头文件中放了许多 javascripts 和 css 文件。并调用它,$this->load->view('header'); 但我无法正确加载 javascript 文件!谁能给我一些提示?很难配置如何设置正确的路径。

<script type="text/javascript" src="/assets/javascripts/order.js"></script> 
<script type="text/javascript" src="../assets/javascripts/order.js"></script>   
<script type="text/javascript" src="../../assets/javascripts/order.js"></script>    

我的控制器代码如下

    class Welcome extends CI_Controller {

public function index()
{
    $this->load->helper('url');     
    $this->base = $this->config->item('base_url');

    $this->load->view('header');
    $this->load->view('welcome_message');


}

}

以下是我的文件夹结构

在此处输入图像描述

4

6 回答 6

8

将您的资产文件夹与applications, system, assets

不在应用程序中,而是在控制器中简单地加载url帮助程序类,在该控制器中调用标题视图部分,例如

$this->load->helper('url');
$this->load->view('header');

并简单地在你的头文件中使用这样的东西..
因为$this->base_url()返回/文件夹..

<script src="<?php echo $this->base_url();?>assets/javascript/jquery.js"></script>

更改文件夹结构,因为应用程序文件夹中的访问仅适用于我所知道的核心部分..

如果您想了解有关URL Helper的更多信息,请点击此处的链接

于 2012-08-25T04:25:57.370 回答
2

这是使用最少代码的最佳方式

<script src="<?php echo base_url('assets/javascript/jquery.js');?>"></script>
<script src="<?php echo base_url('assets/css/bootstrap.min.js');?>"></script>
于 2015-01-26T06:18:39.700 回答
0

Jogesh_p 的回答肯定会解决您遇到的资产加载问题。我想跟进你提出的这个问题

谢谢你或你的支持。顺便说一句,如果我想使用像 phpMailler 或 zend 框架这样的库。

您可以放入应用程序/库/

然后使用库的类名称将其加载到控制器中

$this->load->library('phpmailer');

您可以选择在构造函数或单个方法上加载。

祝你好运!

于 2012-08-25T09:18:52.323 回答
0

为了解决我的问题,我创建了辅助函数来加载资产。这是部署在我的应用程序中的代码。 PS:首先我规划了一个好的/灵活的目录结构

[ some_helper.php ]

/*
 * Created: 2017/12/14 00:28:30
 * Updated: 2017/12/14 00:28:39
 * @params
 * $url_structure = 'assets/js/%s.js'
 * $files = ['main.min', 'social']
 * $echo = FALSE
 *
 */

function load_js($files = [], $url_structure = NULL, $version = '1.0', $echo = FALSE){
    $html = "";
    foreach ($files as $file) {
        if($url_structure){
            $file = sprintf($url_structure, $file);
        }
        $file_url = base_url($file);
        $html .= "<script src=\"{$file_url}?v={$version}\"></script>";
    }
    if($echo) {
        echo $html;
    }
    return $html;
}

/*
 * Created: 2017/12/14 00:28:48
 * Updated: 2017/12/14 00:28:51
 * @params
 * $version = '1.0' // Later load from configuration
 * $url_structure = 'assets/js/%s.css'
 * $files = ['main.min', 'social']
 * $echo = FALSE
 *
 */

function load_css($files = [], $url_structure = NULL, $version = '1.0', $echo = FALSE){
    $html = "";
    foreach ($files as $file) {
        if($url_structure){
            $file = sprintf($url_structure, $file);
        }
        $file_url = base_url($file);
        echo "<link rel=\"stylesheet\" href=\"{$file_url}?v={$version}\">";
    }
    if($echo) {
        echo $html;
    }
    return $html;
}

然后在视图中调用

[ some_view.php ]

$css = [
    'path' => 'assets/css/%s.css',
    'files' => ['bootstrap.min','style']
];
load_css($css['files'], $css['path'], '1.0', TRUE);

希望它可以帮助某人。在 OP 的情况下$css['path'] = 'application/assets/css/%s.css';会成功。

更新了Github上的代码,我将继续更新。

于 2017-12-13T19:22:05.920 回答
-2


资产/css/bootstrap.min.css"

    <!-- Include JS -->
    <script src="<?php echo base_url();?>assets/js/jquery.js"></script>
    <script src="<?php echo base_url();?>assets/js/bootstrap.min.js"></script>
于 2015-07-14T17:49:00.273 回答
-2
function addcategory()
{
    //alert("<?php echo base_url();?>")
     $.ajax({
                complete: function() {}, //Hide spinner
                url : '<?php echo base_url();?>category/search',
                data:$('#add_category').serialize(),
                type : "POST",
                dataType : 'json',
                success : function(data) {
                    if(data.code == "200")
                    {
                        alert("category added successfully");
                    }

                        },
                beforeSend: function(XMLHttpRequest){}, //$.blockUI();
                        cache: false,
                        error : function(data) {
                            }
            });

}
于 2015-07-15T05:10:24.830 回答