2017-02-12 91 views
0

它不是特定於腳本 - 現在我有兩個不同的Web編輯器(TinyMCE和現在的CKEditor)有同樣的問題。Durandal&require.js在捆綁時導致第三方腳本的路徑問題

在我bundleconfig.cs我:

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

這是位於/腳本/ 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在那裏保留加載這些文件時的「腳本/ 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' 

    } 
}); 

然後,我有:

define(['durandal/app', 'services/datacontext', 'ckeditor-jquery'], function (app, dc, ckjq) { 
    var vm = function() { 
    etc... 

我刪除任何引用從bundleconfig.cs文件CKEDITOR 。這樣它只會在需要時加載腳本。