【问题标题】:Working with multiple external view files in codeigniter在 codeigniter 中处理多个外部视图文件
【发布时间】:2012-01-05 00:12:43
【问题描述】:

如果我有 10 个图像、2 个 javascript 文件和 4 个 css 文件需要包含在 Ci 视图中...调用所有文件的最佳方法是什么?我尝试使用 $this->load->view('image1.png') 和 $this->load->view('style.css') 调用所有外部文件。但它似乎不能正常工作。关于如何更好地解决这个问题的任何想法?

【问题讨论】:

  • 你应该在你的视图中调用一个 html/php 文件,它是一个模板,而不是 js、css 或图像。就像您制作静态页面一样

标签: php codeigniter


【解决方案1】:

您没有正确使用视图方法。 您通常分配一个视图并将 js 和 css 之类的内容传递给模板。这可能因您使用框架的方式而异。

$this->load->view('path-to-view');将在视图文件夹中查找视图,而不是任意文件。

你可能会调查这个: http://codeigniter.com/user_guide/helpers/html_helper.html#img

用于加载图像,虽然我个人认为为像图像这样的基本 html 元素调用框架的方法是没有意义的。

在某些情况下,您会使用多个视图,例如以字符串形式返回的视图 - 循环等可能需要这些 - 但这看起来不像您的问题中的情况。 以防万一,虽然这里是查看文档:

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

进一步阐述,总体思路是使用 CI 控制器来处理您的页面数据,将必要的模板数据传递给模板(如您的特定于该页面的 js 和 css),然后将必要的数据分配给查看并将该视图传递给模板。您可能也想知道我所说的模板是什么意思,因为如果您只是按顺序调用它们,开箱即用的 CI 会逐步加载视图。

在您的控制器中,您可以向视图传递一组标头信息:

$data['css'] = array('some-path.css','another-path.css');
$this->load->view('your-view', $data);

所以在您处理标题的视图中,您可能会这样称呼:

<head>
<?php foreach($css AS $c): ?>
    <link rel="stylesheet" type="text/css" href="<?php echo $c; ?>">
<?php endforeach; ?>
</head>

这是一个 CI 模板的公平链接:

How to Deal With Codeigniter Templates?

它是一个多功能的框架,有多种使用方式可供您选择。

【讨论】:

  • 我发誓这令人沮丧。在处理视图中的视图时,词是一种废话。好的,首先, echo img('images/picture.jpg'); - 回显为 html 图像,但我只需要我的 css 的链接路径。其次, load->view('scripts/jquery.nivo.gallery.js', '', TRUE); ?> - 无法正常工作。 crep.tk/nurbell - 这是我正在尝试获取图像和一切正常工作的站点。从 Chrome 控制台中的网络选项卡可以看出,加载时有很多错误。
  • CI 在视图中的视图非常简单,只要您维护视图的正确定义。如果您尝试在其意图范围之外使用它,那将是一件废话。您无法加载带有视图的脚本。它不是那样工作的。就像我说的,将脚本 url 作为数组传递给主视图,并在头部的 for 循环中回显它。通常调用的多个视图仅限于页眉、内容、页脚和侧边栏等内容,但只要您知道何时使用视图以及何时只调用脚本看法。等
  • 或者只是将依赖项硬编码到视图中。
猜你喜欢
  • 1970-01-01
  • 2017-12-14
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 2017-08-16
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多