2017-09-12 10 views
1

asp.net mvc appを作成し、cbeditor(4.7.2)を初心者として再生しています。CDNが使用されている場合はローカルckeditorプラグインをロードし、Chromeキャッシュの場合は

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

をしかし、私はこれを行う場合は、ブラウザがこれをロードしようと::私はper the docとして、ローカルにプラグインを読み込むことができるようにそれを設定する必要がありますので、私はCDNからCKEditorバージョンをロード

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を作成する必要がありますか?それとも私が逃した何かがありますか?

更新:ドキュメントがパスに最後のスラッシュを挿入することが分かりました。これを追加すると、これによって問題が修正され、最後にクエリ文字列が保持されます。しかし、これはこの問合せ文字列が存在する理由とckeditorがこの終了スラッシュをチェックしない理由を説明していません。

これは私に二次質問をもたらします。開発時には、Visual Studioでファイルを変更するだけで、Chromeからの操作なしで再読み込みできます。しかし、ckeditorによって読み込まれたプラグインの場合、Chromeは古いバージョンを保持します。ブラウザのキャッシュをクリアする必要があります。毎回最新のバージョンがインストールされていることを確認する必要があります。これを修正する方法はありますか?私はこれが関連する疑問だと思っています。なぜなら、これはキャッシュをバイパスしてファイルをリロードするメカニズムだと思いましたが、ここでは値 't'は変更されません。

答えて

1

per documentationとしてaddExternal()方法の2番目のパラメータである:

パス:文字列 リソースを含むフォルダのパス。

パスが/scripts/ckeditor/plugins/name?t=H7HDの場合、最後のパラメータ(プラグインファイル、plugin.js)が連結されます。

+0

"?t = H7HD"をパスに追加しません。 ckeditorによって読み込まれたすべてのURLにはこれがあります。 –

+0

Opsでは、実際にCKEditorは、末尾にスラッシュがないパスがある場合に説明したのと同じように動作します。そのため、この問題の直接的な解決策は、プラグインフォルダへのパスの最後にスラッシュを追加することです。あなたが報告した問題を再開しました:https://github.com/ckeditor/ckeditor-dev/issues/917 –

関連する問題