在二级目录和顶级域名下使FCKeditor编辑器图片显示正常 !

FCKeditor编辑器大家都用的吧,最近一个项目遇到了一些麻烦,就是项目发布前是有二级目录的,比如http://www.abc.com/test/,项目发布以后就需要指向到一级域名,比如:www.test.com,项目在服务器上的物理路径是不变的。相信很多网络公司发布网站都用这种方式。域名指向以后FCK编辑器里面的图片显示就会出现问题。找了很多方法,最后确定,FCKeditor编辑器本身是有设置的!先汗一个。。。。

在Fckeditor目录下找到fckconfig.js文件,在30行左右找到:

FCKConfig.BaseHref = '' ;

这个就是设置图片基础路径的,脚本调用这个变量的时候会生成一个html<Base>标签

document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;

Base标签的作用,相信很多人很陌生,没怎么用过。我查了一下资料<Base>的作用简单的说就是,不管本页面在哪个目录下面,只要设置了<base>那么,图片路径就当时设置的这个目录下面,不过设置要用绝对路径,不能用相对路径。比如:http://www.baidu.com/

<head>
<base href="http://www.w3schools.com/images/" />
</head>
<img src="smile.gif" />
相当于
<head>
</head>
<img src="http://www.w3schools.com/images/smile.gif" />

了解了这些以后就简单了,FCKConfig.BaseHref = '' ;虽然可以设置,但是需要绝对路径,所以加入下面的小代码就可以了:
原理很简单,就是取top的location就可以了,然后把最后面的文件名删除就可以了。

另外,上传文件的路径设置成:

$Config['UserFilesPath'= '../upload/fck/' ;

$Config[
'UserFilesAbsolutePath'= '/web1/web/xuxu/upload/fck/' ;

上传设置文件的路径位于:FCKeditor\editor\filemanager\upload\php\config.php
浏览设置文件的路径位于:FCKeditor\editor\filemanager\browser\default\connectors\php\config.php

 

FCKConfig.BaseHref = '' ;

if(top.location!=null)
{
    
var __url=top.location+"";
    __url
=__url.substr(0,__url.lastIndexOf("/")+1);
    FCKConfig.BaseHref
=__url;
}

转自:http://blog.csdn.net/cui55/archive/2007/09/07/1775985.aspx
posted @ 2008-06-05 11:30  阳光囧男  阅读(819)  评论(0编辑  收藏  举报