Rails 4アプリケーションでckeditorgemを使用しています。すべてがローカルおよびステージングのheroku環境でうまく機能しますが、本番環境をプッシュするとこのエラーが発生します:
_GET http://myapp.herokuapp.com/assets/ckeditor/contents.css 404 (Not Found)
GET http://myapp.herokuapp.com/assets/ckeditor/skins/moono/icons.png 404 (Not Found)
_
エディターは正常に表示されますが、すべてのアイコンが表示されません。
README( https://github.com/galetahub/ckeditor ))に従いましたが、おそらく何かが足りません。
これが私のステップです:
1)宝石のインストール、生成など.。
2)application.jsのconfig.autoload_paths += %W(#{config.root}/app/models/ckeditor)
3)routes.rbの_mount Ckeditor::Engine => "/ckeditor"
_(理由はわかりません)
4)application.js内
_//= require ckeditor/override
//= require ckeditor/init
_
これは正確に何をしているのですか、なぜオーバーライドが必要なのですか? (これらのファイルは、_/app/assets
_にも、_/lib/assets
_にも、_/vendor/assets
_にもないため、どこにありますか?)
Herokuは読み取り専用であるため、チュートリアルで説明されているようにrakeタスクを実行できません。これが、本番モードでエラーが発生する理由だと思います。
誰かが同じ問題に直面しましたか?私はすべてのstackoverflowの質問に答えましたが、これまでのところ問題を解決するものは何もありませんでした。
更新:
それを機能させるために私が見つけた唯一の方法は、ライブコンパイルです:_config.assets.compile = true
_しかし、これを本番環境で使用したくないので、なぜ機能するのかわかりません。
現在、この問題の解決策は変更されています。
「ckeditor/override.js」を含める必要はありません
1宝石を更新します。
bundle update ckeditor
2この行をファイルconfig/application.rbに追加します
config.assets.precompile += Ckeditor.assets
config.assets.precompile += %w( ckeditor/* )
config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
それは私のために働きますあなたにも働くことを願っています。
私はこれに従ってこの問題を解決しました: https://github.com/galetahub/ckeditor/issues/307#issuecomment-22186377 。
基本的に、ckeditorアセットをapplication.rb
のプリコンパイルリストに追加し、rakeタスクを使用してデプロイ中に適切な場所にコピーします。
それが役に立てば幸い。
GitHub の指示に従いました
ファイル内の次の変数をtrueで設定する必要がありますconfig/environment/production.rb
config.assets.compile = true
次のコードを追加します
config.assets.precompile += Ckeditor.assets
config.assets.precompile += %w(ckeditor/* )
config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
このソリューションに対する私の環境は次のとおりです。
gem'ckeditor '、'〜> 4.1 '
Ruby「2.3.0」
Rails 5.0.0.1
config.assets.precompile += Ckeditor.assets
にapplication.rb
を追加すると、作業が完了します。
私は同じ問題を抱えていました、これが私のファイルと私がどのように修正したかです:
//= require ckeditor/override
//= require ckeditor/init
group :production do
gem 'Rails_12factor'
end
次に、bundleを実行してGemfile.lockを生成し、ファイルをリポジトリにコミットします。
config.serve_static_assets = true
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
config.assets.compile = false # we don't want compilation fallbacks
Herokuにデプロイして確認します。
それが何とか役立つことを願っています。
私はアプリケーションに取り組んでおり、それはdev envで正常に動作しますが、Herokuアセットにデプロイすると、まったくロードされません。そのため、TinyMCE、CkEditor js、またはcssをロードできません。
回避策を見つけてローカルでアセットをコンパイルし、Herokuにプッシュしてから、CkEditor JSのコンパイル済みアセットURLを取得し、次のようにビューに含めました。
<script src="/assets/ckeditor/ckeditor.js"></script>
クラウドからckeditorアセットをロードしたい場合は、次のようなCDNを使用できます。
<script src="https://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.6.2/ckeditor.js"</script>
また、production.rbファイルのいくつかの設定を変更する必要があります
config.assets.compile = true
config.assets.precompile += Ckeditor.assets
config.assets.precompile += %w(ckeditor/* )
config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
そして、Herokuにも取り組み始めます。
その他の問題については、plsが返信します。