Requirejs 杜兰达尔公司;require.js导致捆绑时第三方脚本路径出现问题

Requirejs 杜兰达尔公司;require.js导致捆绑时第三方脚本路径出现问题,requirejs,durandal,Requirejs,Durandal,它不是特定于脚本的——我现在在使用两个不同的web编辑器(TinyMCE和现在的CKEditor)时遇到了相同的问题 在我的bundleconfig.cs中,我有: .Include("~/Scripts/ckeditor/ckeditor.js") 它位于/Scripts/ckeditor中,在我的开发机器上的VisualStudio中运行良好 一旦我将站点发布到本地开发人员服务器,当它尝试将相关资源加载到该文件时,我立即收到错误: GET http://example.com/config

它不是特定于脚本的——我现在在使用两个不同的web编辑器(TinyMCE和现在的CKEditor)时遇到了相同的问题

在我的bundleconfig.cs中,我有:

.Include("~/Scripts/ckeditor/ckeditor.js")
它位于/Scripts/ckeditor中,在我的开发机器上的VisualStudio中运行良好

一旦我将站点发布到本地开发人员服务器,当它尝试将相关资源加载到该文件时,我立即收到错误:

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在需要的页面顶部加载它。这是比在站点加载时加载更好的解决方案吗?

通过编辑我的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的任何引用。这样,它只在需要时加载脚本