用户
 找回密码
 入住 CI 中国社区
搜索
查看: 20094|回复: 17
收起左侧

[视图] 大家是怎样组织和引入css和javascript文件的?

  [复制链接]
发表于 2008-3-31 22:22:31 | 显示全部楼层 |阅读模式
大家一般会把css和javascript放在CI中的那个目录下?又是怎样的在页面中利用<link></link>和<script></script>把自己的css还有javascript文件引入的。难点就在于在CI中,用scr这样的属性引入文件目录不是很直观。
望达人解惑,多谢。
发表于 2008-3-31 22:51:28 | 显示全部楼层
首先,说一下,类似的帖子论坛已经发过了,呵呵。
然后,我说一下,我一般都放到和 index.php 同级的目录下,然后用 URL Helper 的 base_url() 函数引用。
发表于 2008-4-1 07:21:24 | 显示全部楼层
css和javascript只要放到网站目录下就可以,不一定非得在根目录下,然后用base_url()辅助函数引入绝对路径就ok
 楼主| 发表于 2008-4-1 20:10:53 | 显示全部楼层

搞定了。。原来是我把base_url()设错了。。谢谢各位

搞定了。。原来是我把base_url()设错了。。谢谢各位
发表于 2009-9-9 16:40:11 | 显示全部楼层
点样设base_url()?
发表于 2009-10-18 22:20:06 | 显示全部楼层
......
发表于 2009-11-19 15:27:36 | 显示全部楼层
这只是解决了文件引用的问题

但还是有许多不方便之处,举一个我碰到的例子

例如控制器c里有2个函数f1和f2,两个函数会分别加载视图文件v1和v2,
v1和v2会引用一个相同的css文件,该css文件定义了一个背景,会加载一张背景图片,如果该图片地址不使用绝对地址的话,基本上该css文件就不可能被v1和v2共用

例如当你访问如下两个地址时
http://localhost/c/f1
http://localhost/c/f2/23  //向f2传递了一个参数23
(当css文件中关于背景部分没有使用绝对地址时)如果访问地址1背景图片能够显示正常的话,地址2背景一定是显示不出来的
解决办法只有在css文件中使用绝对地址

这样做将来的一个问题就是一旦你的站点域名发生变化了,你除了要修改配置文件里的 base_url,你还要修改类似css文件中的绝对地址
发表于 2009-11-21 15:17:05 | 显示全部楼层
css 里面的地址是相对于当前 css 文件的,和你访问的 URL 无关,这个楼上的朋友可以测试一下。
也就是说,css 里用相对路径完全OK,CI 中国就是这么做的。
发表于 2009-11-23 16:05:32 | 显示全部楼层
本帖最后由 clhqk 于 2009-11-23 16:06 编辑

回复 5# xman81


    设置base_url(),必须要加载helper('url');
    方法1:
    在你使用base_url()的控制器里面加载.
    $this->load->helper('url');
    方法2:
    如果使用比较频繁,可以直接在system/application/config/autoload.php里设置.
    $autoload['helper'] = array('url');


同时我再声明一下,如果你使用URL重写的话,尤其是重写到index.php的时候,注意书写内容,我一般有这个习惯,希望大家注意!
.htaccess的内容如下:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|style|fckeditor|uploads|robots\.txt)  //这里一定要把能访问的文件夹写进去!
RewriteRule ^(.*)$ index.php/$1 [L]

大家一起学习CI,共同进步吧!
发表于 2010-1-11 02:14:32 | 显示全部楼层
汗。。。我一般把css文件放在images文件夹下,这样在css里面什么路径也不用写,直接写background:url(图片名称)。。呵呵。

另外利用好.htaccess,把图片,flash,js,editor都放在根目录下的某个文件夹里面,我觉得就路径问题基本不存在了。

本版积分规则