FCKeditor编辑器大家都用的吧,最近一个项目遇到了一些麻烦,就是项目发布前是有二级目录的,比如http://www.abc.com/test/,项目发布以后就需要指向到一级域名,比如:www.test.com,项目在服务器上的物理路径是不变的。相信很多网络公司发布网站都用这种方式。域名指向以后FCK编辑器里面的图片显示就会出现问题。找了很多方法,最后确定,FCKeditor编辑器本身是有设置的!先汗一个。。。。
在Fckeditor目录下找到fckconfig.js文件,在30行左右找到:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
这个就是设置图片基础路径的,脚本调用这个变量的时候会生成一个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" />
< base href ="http://www.w3schools.com/images/" />
</ head >
< img src ="smile.gif" />
<
head
>
</ head >
< img src ="http://www.w3schools.com/images/smile.gif" />
</ 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/ ' ;
$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;
}
if (top.location != null )
{
var __url = top.location + "" ;
__url = __url.substr( 0 ,__url.lastIndexOf( " / " ) + 1 );
FCKConfig.BaseHref = __url;
}