Problem upgrading to Rails 3.2.11: ExecJS :: RuntimeError in Static_pages # home

I just upgraded from Rails 3.2.10 to 3.2.11 and made no other changes to my application.

Suddenly my site doesn’t load - and gives me an error message:

ExecJS::RuntimeError in Static_pages#home 

Does anyone know why changes in Rails 3.2.11 can cause this problem?

 ExecJS::RuntimeError in Static_pages#home Showing C:/Sites/av_reports/app/views/layouts/application.html.erb where line #11 raised: (in C:/Sites/av_reports/app/assets/javascripts/password_resets.js.coffee) Extracted source (around line #11): 8: <meta name="author" content=""> 9: 10: <%= stylesheet_link_tag "application", :media => "all" %> 11: <%= javascript_include_tag "application" %> 12: <%= csrf_meta_tags %> 13: <%= render 'layouts/shim' %> 14: </head> 

The file My / app / assets / javascripts / password_resets.js.coffee contains 3 lines of text with comments, so I assume this is not a problem.

Are there gem-specific changes or something like this - which might cause the problem?

Edit

My application.js file reads:

 // This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. // // It not advisable to add code directly here, but if you do, it'll appear at the bottom of the // the compiled file. // // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT TO BE PROCESSED, ANY BLANK LINE SHOULD // GO AFTER THE REQUIRES BELOW. // //= require jquery //= require jquery_ujs //= require bootstrap //= require_tree . 
+4
source share
2 answers

So ... apparently this is not a Rails 3.2.11 update issue at all. The main problem was that ExecJS was running on Windows. I am currently running a development environment on Windows 8.

Before upgrading to Rails 3.2.11, the above error message will appear in the server log, but the server will not stop it. In Rails 3.2.11, the page will no longer load.

The solution was to edit the file Ruby1.9.3 \ lib \ ruby ​​\ gems \ 1.9.1 \ gems \ execjs-1.4.0 \ lib \ execjs \ runtimes.rb:

(source non-working code):

 JScript = ExternalRuntime.new( :name => "JScript", :command => "cscript //E:jscript //Nologo //U", :runner_path => ExecJS.root + "/support/jscript_runner.js", :encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE ) 

(updated working code):

 JScript = ExternalRuntime.new( :name => "JScript", :command => "cscript //E:jscript //Nologo", :runner_path => ExecJS.root + "/support/jscript_runner.js", :encoding => 'UTF-8' # CScript with //U returns UTF-16LE ) 

Thanks for the comment: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952

and a discussion at fooobar.com/questions/62181 / ... for help on this issue.

+4
source

I have some problems, but I used Ruby2.0.0

the solution is to edit Ruby2.0.0 \ lib \ ruby ​​\ gems \ 2.0.0 \ gems \ execjs-2.2.1 \ lib \ execjs \ runtimes.rb

0
source

All Articles