在 codeigniter 视图中放置 css

Posted

技术标签:

【中文标题】在 codeigniter 视图中放置 css【英文标题】:Placing of css in codeigniter views 【发布时间】:2012-04-30 21:16:48 【问题描述】:

我是 Codeigniter 的新手。我制作了一个简单的控制器来加载三个视图:页眉、正文和页脚。我的标题包含指向几个具有相对路径的 javascript 和 CSS 的链接。我将所有 css 和 js 相对于文件保存在 views 文件夹中。

问题是控制器正确加载了所有内容,但没有加载图像、js 和 css。

这是我的视图的层次结构:

CSS(视图中的子目录) JS(视图中的子目录)

header(头视图文件) 身体(身体视图文件) 页脚(页脚视图文件)

有什么想法吗?

【问题讨论】:

您如何链接到这些资源?您使用的是相对 URL 还是绝对 URL?你在使用 CodeIgniter 函数吗? base_url('css/styles.css');例如?是否可以在您遇到问题的地方显示一些代码? 这是我在 header.php 文件中的行。我在视图目录中有 CSS 文件夹。 text.css 位于 Views->css->text.css 您必须使路径相对于 index.php 文件,所以我建议将 href 属性更改为 href="application/views/css/text.css" 如果这不起作用,请使用它,它肯定是一些东西这些行。 按照你说的做之后,有效路径变成了:localhost/codeigniter/index.php/admin/application/views/css/… 嗯.. 设置 CodeIgniter 的方法有很多种,我无法从您提供的信息中看出您是如何设置的。您是否使用 htaccess 文件来重写您的网址? 【参考方案1】:

将所有内容都放在视图文件中并不是一个好主意,因为这些文件夹应该清理东西,将它们放在视图中会使它们再次变得混乱。

假设这是您的目录:

本地主机

应用 控制器 观看次数 等等。 系统 资产 Javascript CSS

要包含任何 javascript,路径应为:

localhost/Assets/Javascripts/your_script.js

显然 CSS 会是

localhost/Assets/CSS/your_stylesheet.css

为了确保您的实施在任何地方都能正常工作,

<script src="<?=base_url('path/to/your/js/foo.js')>" type="text/javascript"></script>

这是最安全的方法

【讨论】:

【参考方案2】:

您需要将文件放在基本目录中,例如包含应用程序和系统文件夹的那个。

尝试使用名为 assests 的文件夹。

还要确保您使用的是前导斜杠,例如

href="/assets/css/style.css"

注意这将从基础 URI 加载

例如example.local/assets/css/style.css

【讨论】:

是的,您应该将所有静态文件放在应用程序文件夹之外,例如 assets 并使用 base_url() 在您的视图文件中引用 我要为此 +1,因为你有最好的名字!【参考方案3】:

我建议您不要将 js/images/css 文件保存在 view 文件夹中。

请参考这个过去的问题。 Where do I put image files, css, js, etc. in Codeigniter?

至于回答你的问题,就像戴尔所说的那样。

首先,您需要检查您的 .htaccess,并注意您的基本目录在哪里。

然后,您必须提供适合您的 js/css 文件夹的路径链接。如果您将它们保存在您的视图文件夹中,您似乎必须执行此网址

http://localhost/codeigniter/index.php/application/views/css/text.css

如果我没记错的话,你现在在

"http://localhost/codeigniter/index.php/admin"

正在尝试加载 css 文件。如果您使用 href="something",它只会添加到您当前的 URL。它将提供“http://localhost/codeigniter/index.php/admin/something”,而 IMO 不是您想要的。

【讨论】:

您能否为此详细说明一个标准且安全的做法。我是codeignitor的新手。谢谢。 我也不是“专业人士”。我通常做的是:我将文件保存在/Extras/img/Extras/css/Extras/js。因此,如果我需要访问任何图像文件,我会这样做:base_url('Extras/img/foo.jpg') 谢谢 :) 我正在关注这个:***.com/questions/6630770/… 希望有所帮助。祝你好运:)【参考方案4】:

链接到css文件的最好方法是这样的

echo link_tag('css/reset.css');

注意链接标签不使用 / 而下面的 hs 文件使用

你的css和js需要在根目录下

JS 文件

<script defer src="/media/javascripts/scrips.js"></script>

也在根目录中。当然,您的目录会有所不同

您不能链接到同一视图目录中的 css 文件

http://codeigniter.com/user_guide/helpers/html_helper.html

【讨论】:

以上是关于在 codeigniter 视图中放置 css的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CodeIgniter 将视图打开到视图中

在 CodeIgniter 3 中多次渲染视图

Codeigniter:php 在视图中不起作用!

PHP:在视图中显示会话变量:CodeIgniter

在视图中使用 foreach 的 Codeigniter

在 Codeigniter 中,如何将视图文件写入视图文件?