概要
-
たぶん普通に併用する分には問題ない
-
asset_syncをデプロイ先サーバではなく、デプロイ元(ローカルやCI/CDサーバなど)からS3へのアップロードをやっていると問題が起きる(と思う)
-
AssetSync/asset_sync: Synchronises Assets between Rails and S3
-
tsechingho/ckeditor-rails: Integrate CKEditor javascript library with Rails asset pipeline
問題
ckeditorのjavascriptがさらに別のjavascriptファイルを読み込もうとするが、ホスト名がs3でないため、jsのエラーが発生し、ckeditor自体が正常に動作しない。
解決
https://github.com/mkaszubowski/ckeditor#include-customized-ckeditor_basepath-setting
https://github.com/tsechingho/ckeditor-rails/wiki/Work-with-asset-host
↑を参考に
app/assets/javascripts/ckeditor/basepath.js.erb
を作成
<%
base_path = ''
base_path << Rails.application.config.action_controller.asset_host.to_s
base_path << Rails.application.config.assets.prefix
base_path << '/ckeditor/'
%>
var CKEDITOR_BASEPATH = '<%= base_path %>';
これをapplication.jsなどでrequireするとs3からjavascriptファイルを読み込むようになる