我尝试使用Google搜索,但我还没有找到答案。
我正在尝试通过rails运行一个简单的控制器脚本,当我到达页面时它给了我这个错误。
ExecJS::RuntimeError in Say#hello
显然Say是控制器,hello是方法。在页面的下方,我可以获得有关错误的更多信息。
dyld: unknown required load command 0x80000022
(in /Users/JoeMoe/Sites/demoRails/app/assets/javascripts/say.js.coffee)
我已经检查了这个文件,除了注释代码之外没有任何内容。那里应该有什么东西吗?
以下是say.js.coffee文件中的内容
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
在页面下面,我看到我可以做一个显示我的应用程序跟踪。
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__169683399_21885150'
我也可以做框架跟踪。顺便说一句,这将是一个很长的清单。
execjs (1.2.9) lib/execjs/external_runtime.rb:129:in `exec_runtime'
execjs (1.2.9) lib/execjs/external_runtime.rb:27:in `block in exec'
execjs (1.2.9) lib/execjs/external_runtime.rb:40:in `compile_to_tempfile'
execjs (1.2.9) lib/execjs/external_runtime.rb:26:in `exec'
execjs (1.2.9) lib/execjs/external_runtime.rb:18:in `eval'
execjs (1.2.9) lib/execjs/external_runtime.rb:32:in `call'
coffee-script (2.2.0) lib/coffee_script.rb:57:in `compile'
tilt (1.3.3) lib/tilt/coffee.rb:46:in `evaluate'
tilt (1.3.3) lib/tilt/template.rb:76:in `render'
sprockets (2.0.3) lib/sprockets/context.rb:175:in `block in evaluate'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `each'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `evaluate'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:171:in`build_dependency_context_and_body'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:135:in `dependency_context'
....
还有更多但很长的清单,我不想厌烦你。如果您需要完整列表,请告诉我,我会将其粘贴。
我正在使用以下内容运行Mac OS X. - Ruby 1.9.2 - Rails 3.1.0 - 宝石1.8.10 - sqlite3 3.7.9
答案 0 :(得分:20)
你必须为javascript安装一个额外的gem。 编辑gemfile并添加gem'therubyracer'。然后,您可以运行bundle来安装新的gem。
这是您的详细解决方案: http://www.railszilla.com/2011/12/rails-3-coffescript-execjs/
答案 1 :(得分:18)
它也发生在我身上!您需要安装“ nodejs ”。当我使用Ubuntu Linux时,我做了:
apt-get install nodejs
来源:http://forums.pragprog.com/forums/148/topics/9665#posts-26576(Sam Ruby的帖子)
答案 2 :(得分:5)
如果您在生产服务器中遇到此问题,则可能是由于内存使用情况。 在做资产预编译服务器时使用大量内存。
consider restarting your production server.
答案 3 :(得分:3)
以上都不适合我。 。 。
我安装了gem 'coffee-script-source', '1.8.0'
。
然后应用程序开始运行没有任何问题。
答案 4 :(得分:0)
看起来你可能会错过一些宝石。
添加到您的Gemfile:
([^_\/]*)_
然后运行gem 'therubyracer'
gem 'execjs'
进行安装。
答案 5 :(得分:0)
似乎缺少javascript运行器,您只需要这样做
gem 'therubyracer'
然后
bundle install
如果正在使用生产服务器,则重新启动服务器,然后考虑重新启动生产服务器。
肯定会解决您的问题,
欢呼