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

[已解决] 各位元老救急~~~图片相对路径的问题?

[复制链接]
发表于 2011-4-28 16:15:13 | 显示全部楼层 |阅读模式
本帖最后由 昨夜渡轮 于 2011-5-3 15:58 编辑

我写的文章系统里对HTML编辑器里有远程图片文件的会自动下载到系统所在服务器,但是不知道相对路径怎样弄?
比如我的程序在根目录下的话图片的存取目录应该是
http://域名/upload/
如果在下级目录下的话会是下面这样的地址
http://域名/cms/upload/
肯定不能用绝对路径,不然移动程序显示图片会受到影响,只有用相对路径但在CI下怎么实现呢?
图片下载到upload文件夹下这个功能都是正常的,但是下载图片后会把现有的字符串中的
<img src=http://baidu.com/logo.gif" />替换成<img src="upload/logo.gif" />并存入数据库表中,
上面的情况在根目录下显示没有问题,但是在二级目录下显示就肯定不行了怎么弄?

application 项目文件夹
system 系统文件夹
theme 模板文件夹
upload 上传文件夹
index.php

上面的都在同一个目录
 楼主| 发表于 2011-4-28 21:59:20 | 显示全部楼层
没人遇到还是没解啊?
发表于 2011-4-28 23:05:59 | 显示全部楼层
ci里面的路径全部是基于index.php文件文件的路径,
你可以试试/upload/  那么这个路径就是index文件下的upload文件夹了
 楼主| 发表于 2011-4-28 23:07:17 | 显示全部楼层
我到是发现指定<base href="http://域名/cms/" />可以解决,但觉得不是个最好的方法,希望各位提供有价值的建议
 楼主| 发表于 2011-4-28 23:31:30 | 显示全部楼层
ci里面的路径全部是基于index.php文件文件的路径,
你可以试试/upload/  那么这个路径就是index文件下的upl ...
zfm1988 发表于 2011-4-28 23:05



    我试过了,但如果是在二级目录下会少掉 /cms/ 这个就显示不了
 楼主| 发表于 2011-4-28 23:41:52 | 显示全部楼层
本帖最后由 昨夜渡轮 于 2011-4-28 23:46 编辑

还是没找到办法,主要是解决二级目录或多级目录下图片路径问题
发表于 2011-4-29 01:05:40 | 显示全部楼层
CI 的 URL 不能用相对路径,主要原因应该是和 CI 的 URL 分段有关,导致浏览器不知道你是真实路径,还是URL参数。
我觉得 base 标签是比较折中的做法。
 楼主| 发表于 2011-4-29 18:08:08 | 显示全部楼层
CI 的 URL 不能用相对路径,主要原因应该是和 CI 的 URL 分段有关,导致浏览器不知道你是真实路径,还是URL ...
Hex 发表于 2011-4-29 01:05



我想了几种
一、用<base>标签现目前最方便,但是做模板文件时都要加上这个以防出错。
二、在替换图片地址的时候加一个自定义标签比如{baseurl}/upload/logo.gif 其中{baseurl}等于“/cms/”或“http://域名/cms/”这部分,前者为相对路径,后者为绝对路径,只不过要在替换的过程中写好程序取得当前目录或域名就可,然后在取出数据库的时候再替换{baseurl}标签就好像模板那样不过这个太麻烦了没意思,或者直接替换成“/cms/upload/logo.gif”这个不灵活。
三、第三个我没想到,不知道大家想到没有 嘿嘿
 楼主| 发表于 2011-5-1 21:24:10 | 显示全部楼层
本帖最后由 昨夜渡轮 于 2011-5-1 22:48 编辑

用的xheditor编辑器,后台指定了<base>但是编辑框里的图片就是不显示,不知道这个怎么搞

评分

参与人数 1威望 -3 收起 理由
lamtin -3 表激动...注意语气...

查看全部评分

发表于 2011-5-2 11:35:25 | 显示全部楼层
<img src="upload/logo.gif" />

改成
<img src="/upload/logo.gif" />

如果被转义成域名/index.php/upload/logo.gif的话应该是.htaccess的问题
加行
RewriteCond %{REQUEST_FILENAME} !-d
就好
PS:我说的是apache

本版积分规则