2017-02-12 8 views
0

Это не относится к скрипту - у меня была такая же проблема с двумя разными веб-редакторами (TinyMCE и теперь CKEditor).Durandal & require.js вызывает проблемы с путями для сторонних скриптов при связывании

В моем bundleconfig.cs у меня есть:

.Include("~/Scripts/ckeditor/ckeditor.js") 

Который находится в/Scripts/CKEditor и она отлично работает в визуальной студии на моей машине развития.

Как только я опубликовать сайт на локальном сервере Dev, я сразу получаю ошибки при попытке загрузить соответствующие ресурсы в этот файл:

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

решаемые путем редактирования моего 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... 

я удалил все ссылки на CKEditor из файла bundleconfig.cs , Таким образом, он загружает только сценарии, когда он им нужен.