【问题标题】:Codeigniter Loading external site in default controllerCodeigniter 在默认控制器中加载外部站点
【发布时间】:2013-07-24 11:15:11
【问题描述】:

我自己无法解决这个问题,所以我在这里寻求您的帮助。

如何在代码点火器默认控制器中加载已作为视图创建的网站?

我将我的网站放在文件夹名称 site 下,并在默认控制器中加载了视图 site/index ,但是在我的网站中包含和重定向存在问题...我不知道为什么,我猜测网站通常使用重定向的方式与代码点火器样式不兼容

编辑:我想我必须关闭这个站点的 CI 引擎,但我不知道为什么,因为我仍然需要 codeingiter 来管理我的应用程序的其他部分

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    “可以告诉 CodeIgniter 在 URI 不存在时加载默认控制器,就像只请求您的站点根 URL 时的情况一样。要指定默认控制器,请打开您的 application/config/routes.php 文件并设置此变量: $route['default_controller'] = '博客';

    其中 Blog 是您要使用的控制器类的名称。如果您现在加载主 index.php 文件而不指定任何 URI 段,您将默认看到您的 Hello World 消息。"

    http://codeigniter.com/user_guide/general/controllers.html

    从该链接复制的片段,您应该将控制器类名放在该配置中,而不是视图中

    【讨论】:

    • 但是我不想要任何控制器,就像我已经在不使用任何框架的情况下创建了一个子站点,并且我正在尝试将该子站点加载到控制器中。
    【解决方案2】:

    我想最好选择以下选项之一:

    1. 将现有站点修改为 CodeIgniter 站点。
    2. 将您的网站与 CodeIgniter 网站分开,并在两个网站之间建立链接。

    您尝试这样做的方式似乎非常无用,并造成很多额外的麻烦。

    【讨论】:

    • 好的,这似乎是一个好方法。我想我要在两个网站之间建立链接,谢谢
    【解决方案3】:

    您可以简单地在控制器中使用重定向功能。如果您提供完整的 URL,您可以转到任何其他页面。当然,你会离开你的 CI 应用程序。

    redirect('http://www.example.net/page_in_external_site/');
    

    【讨论】:

      【解决方案4】:

      在定义包含的路径时尝试使用 APPPATH 常量。

      【讨论】:

        【解决方案5】:

        我知道这是一个老问题,但您可以尝试使用带有 iframe 的视图模板,并且可以将 URL 传递给 iframe 的 src 属性。这样您就可以在视图中显示您的网站,但仍然无法访问从您的网站传递给视图的变量。

        【讨论】:

          【解决方案6】:

          在 system/Core/Loader.php 中将第 141 行更改为如下所示:

          $this->_ci_view_paths = array(APPPATH . 'views/' => TRUE, FCPATH => TRUE);

          获取视图很简单:

          $this->load->view('application/PATH_TO_VIEW');

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-30
            • 1970-01-01
            • 2014-02-17
            • 1970-01-01
            • 2013-06-15
            相关资源
            最近更新 更多