在rails 4升级后,Ckeditor- heroku断了

时间:2013-12-25 08:22:41

标签: heroku ruby-on-rails-4 ckeditor asset-sync

似乎无法弄清楚为什么ckeditor不再适用于heroku。 它在我的本地机器上运行良好。

UPDATE:当资产托管在heroku上时,无需asset_sync gem即可运行 - 但无法使用它。

错误:未捕获的SyntaxError:意外的令牌<在config.js中:1 ckeditor找不到config.js,<是404未找到页面的开头标记 无法加载资源:服务器响应状态为406(不可接受)

感谢我能得到的任何帮助。

Ckeditor gem,Heroku,Rails 4, asset_sync

的application.js

//= require ckeditor/init
//= require ckeditor/config

gemfile - 版本4.0.7

gem "ckeditor" 

appplication.rb

config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
config.assets.precompile += Ckeditor.assets
config.assets.precompile += %w(ckeditor/*)

production.rb

config.assets.compile = true
config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"

3 个答案:

答案 0 :(得分:2)

资产版本更新时工作

答案 1 :(得分:1)

基于https://github.com/galetahub/ckeditor#include-customized-ckeditor_basepath-setting我通过在ckeditor / init之前包含ckeditor / basepath.js.erb来修复了在Heroku上使用asset_sync加载CKEditor资产:

<%
  base_path = File.join Rails.application.config.action_controller.asset_host || '',
                    Rails.application.config.assets.prefix,
                   '/ckeditor/'
%>

(function() {
  if (typeof window['CKEDITOR_BASEPATH'] === "undefined" || window['CKEDITOR_BASEPATH'] === null) {
    window['CKEDITOR_BASEPATH'] = '<%= base_path %>';
  }
}).call(this);

答案 2 :(得分:0)

当在系统中更新ASSET版本时,这将起作用。