在 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的主要内容,如果未能解决你的问题,请参考以下文章