2017-09-12 87 views
1

編寫一個asp.net mvc應用程序並以ckeditor(4.7.2)作爲新手玩。我從CDN加載CKEditor的,所以我必須配置它能夠在本地加載的插件,如per the doc使用CDN時,加載本地ckeditor插件和Chrome緩存

CKEDITOR.plugins.addExternal('name', '@Url.Content("~/scripts/ckeditor/plugins/name")', 
'plugin.js'); 

但如果我這樣做,瀏覽器嘗試加載此:

localhost/scripts/ckeditor/plugins/name?t=H7HDplugin.js 

在瀏覽器控制檯中檢查,我還看到所有的ckeditor文件都是以這種方式加載的,附加了這個?t = H7HD查詢字符串。

我發現的唯一的解決方法是,使用這種形式來代替:

CKEDITOR.plugins.addExternal('name', 
    '@Url.Content("~/scripts/ckeditor/plugins/name/plugin.js")', ''); 

其正確加載文件:

localhost/scripts/ckeditor/plugins/name/plugin.js?t=H7HD 

這是一個錯誤?第一個表單應該以正確的順序構建URL?還是有我錯過的東西?

更新:意識到doc將最後的斜槓放到路徑上。如果我添加它,這也解決了問題,保持查詢字符串結束。但是這並不能解釋爲什麼這個查詢字符串存在,爲什麼ckeditor不檢查這個結尾的斜槓。

這使我想到了第二個問題。在開發過程中,在Visual Studio中修改文件足以使Chrome無需我做任何操作就可以重新加載它們。但是在ckeditor加載插件的情況下,Chrome會保留舊版本。我必須清除瀏覽器的緩存,每次我想確保我擁有最新版本。有沒有什麼辦法解決這一問題?我認爲這是一個相關的問題,因爲我首先想到了這一點?t = ...是一種通過繞過緩存來重新加載文件的機制,除了在這裏,值behing't'不會改變。

回答

1

addExternal()方法per documentation第二個參數是:

路徑:字符串 包含資源的文件夾的路徑。

如果路徑/scripts/ckeditor/plugins/name?t=H7HD那麼最後一個參數(插件文件,plugin.js)是連接在一起的。

+0

我並未在路徑中添加「?t = H7HD」。所有由ckeditor加載的url都有這個。 –

+0

Ops的確,CKEditor的行爲就像您在末尾沒有結尾的路徑時所描述的那樣。所以這個問題的直接解決方案是在路徑末尾添加斜槓到插件文件夾。我重新打開了您報告的問題:https://github.com/ckeditor/ckeditor-dev/issues/917 –

相關問題