如何覆盖托管在CDN(其他地方)的javascript库所需的文件?

时间:2013-07-24 09:29:59

标签: javascript dependencies ckeditor http-status-code-404 cdn

我想在我正在设计的网页中添加CKEditor,方法是添加托管在内容分发网络(jsdelivr)中的Javascript库。问题是:ckeditor.js所依赖的两个文件contents.css和config.js必须是自定义的(我所做的并包含在我的HTML文件所在的同一文件夹中)会产生404错误; ckeditor.js在CDN的文件夹中查找这些文件,并忽略我在本地文件夹中添加的文件。

Error Messages as seen on Chrome Console

这是我添加js文件的方式:

How library is added in Head portion

我计划将来使用来自CDN的库,并期望得到类似的错误。 我究竟做错了什么?有什么建议吗?

由于

4 个答案:

答案 0 :(得分:1)

没错。当您在CDN上传上js文件或css文件并且内部存在相对路径时,浏览器会尝试找出相对于css或js文件的资源。这就是你得到这个错误的原因。如果你上传CDN中的所有内容,应该没有任何问题。

如果您想在CDN上保留一些文件,在本地保存其他文件,则应在资源中指定绝对路径。

答案 1 :(得分:1)

CKEditor提供了一个选项: http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Specifying_the_Editor_Path

尝试添加

var CKEDITOR_BASEPATH = '//mylocalserver/ckeditor/';

在加载ckeditor.js之前

也许这对你有用。

答案 2 :(得分:0)

jsdelivr.net中缺少

config.js和content.css,它们不应该存在,因为CKEditor仅在加载所有必需文件时才起作用,并且它允许您在初始加载后更改配置。 如果在ckeditor.js加载之前将CKEDITOR_BASEPATH定义为本地,则必须将任何其他CKEditor子文件夹放在本地,因为从现在起CKEditor查找本地,然后使用CDN没有意义。

然而,这个有效:http://cdnjs.com/

CDNJS具有所有默认文件,并配置为完整编辑器。如果您不想要完整编辑器,则可以在首次加载后定义自定义配置,如下所示:

http://docs.ckeditor.com/#!/guide/dev_configuration

注意:您必须使用自定义配置文件的完整路径,如下所示:

<script type="text/javascript">
CKEDITOR.replace( 'editor1',
{customConfig: '//www.yourdomain.com/yourfolder/config.js'});
</script>

我把这段代码放在我的html文件的正文结束标记之前。

答案 3 :(得分:0)

这两个文件并不是真正需要的。

您可以指定不同的自定义配置文件,并在该文件中指定它不必尝试加载任何其他配置文件,而contents.css也是默认值,但您可以在配置文件中指定要用于设置编辑器内容样式的文件的路径。