編寫一個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'不會改變。
我並未在路徑中添加「?t = H7HD」。所有由ckeditor加載的url都有這個。 –
Ops的確,CKEditor的行爲就像您在末尾沒有結尾的路徑時所描述的那樣。所以這個問題的直接解決方案是在路徑末尾添加斜槓到插件文件夾。我重新打開了您報告的問題:https://github.com/ckeditor/ckeditor-dev/issues/917 –