Ace editor with rails 4 precompiled assets madness

2019-07-17 19:43发布

问题:

I have been trying to integrate the Ace editor to a Rails 4 project and couldn't get it to work in production.

The editor renders but -obviously enough, it can't load the mode-* files. I tried to add the whole ace tree to the compiled assets hoping it would somehow figure out it's already loaded, but it's still looking for "url/mode-html.js".

Has anyone had any luck making Ace work in Rails with precompiled assets? Am I missing something?

回答1:

This is the workaround I used (in my case for the worker-*.js files, but it should work for the modes and themes too):

  • create perm_assets/javascripts in /public
  • copy the .js files (e.g. worker-json.js) to public/perm_assets/javascripts
  • in one of your own .js files, add the following line (inside a document ready block):

ace.config.set("workerPath", "/perm_assets/javascripts");

Rather than (or in addition to) "workerPath", you can specify "modePath" and "themePath".

I was helped by this discussion too: https://github.com/ajaxorg/ace/issues/655