这不是特定于脚本 - 我现在遇到了两个不同网页编辑器的相同问题(TinyMCE和现在的CKEditor)。
在我的bundleconfig.cs中,我有:
.Include("~/Scripts/ckeditor/ckeditor.js")
位于/ Scripts / ckeditor中,它在我的开发机器上的visual studio中工作正常。
当我将网站发布到本地开发服务器时,我在尝试将相关资源加载到该文件时立即收到错误:
GET http://example.com/config.js?t=H0CG 404 (Not Found)
GET http://example.com/skins/moono-lisa/editor.css?t=H0CG
GET http://example.com/lang/en.js?t=H0CG
正如您所看到的,它正在尝试从错误的位置加载脚本 - 它应该寻找http://example.com/Scripts/ckeditor/config.js
等。
如何在加载这些文件时告诉Durandal / require.js在那里保留“Scripts / ckeditor”部分?
在几个不同的页面上需要脚本,因此我将其加载到捆绑包中。相反,我可以通过每个页面顶部的require.js加载它。这是更好的解决方案而不是在网站加载时加载吗?
答案 0 :(得分:0)
通过编辑我的main.js文件来解决它:
requirejs.config({
shim: {
'ckeditor-jquery': {
deps: ['jquery', 'ckeditor-core']
}
},
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'bootstrap': '../Scripts/bootstrap',
'ckeditor-core': '../Scripts/ckeditor/ckeditor',
'ckeditor-jquery':'../Scripts/ckeditor/adapters/jquery'
}
});
然后在需要它的viewmodel中我有:
define(['durandal/app', 'services/datacontext', 'ckeditor-jquery'], function (app, dc, ckjq) {
var vm = function () {
etc...
我从bundleconfig.cs文件中删除了对ckeditor的任何引用。这样它只在需要时加载脚本。