Rails 3.2 ActionView :: Template ::错误javascript_include_tag

时间:2012-12-14 20:41:14

标签: ruby-on-rails windows-8 actionview

我在Windows 7笔记本电脑上有一个完美的开发环境。今天,我得到了一台新的Windows 8笔记本电脑,并尝试在其上设置开发环境。安装了rails等并创建了新的示例应用程序,它运行良好。然后我克隆了我的应用程序并尝试了。得到以下错误:

Completed 500 Internal Server Error in 2354ms

 ActionView::Template::Error ((in C:/....../appname/app/assets/javascripts/gmaps4rails/gmaps4rails.base.js.coffee)):
3: <head>
4:   <title><%=yield :title %></title>
5:   <%= stylesheet_link_tag    "application", :media => "all" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8:   <%= render 'layouts/shim' %>
9: </head>
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__782381622_56858160'


Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.7/lib/action_dispa

我用谷歌搜索并搜索了javascript_include_tag,并查看了很多线程,但无法找到解决方案。

感谢您解决此问题的任何帮助。

环境信息:

$rails -v
Rails 3.2.7

$ruby -v
ruby 1.9.3p327 (2012-11-10) [i386-mingw32]

编辑:我刚刚发现当我有咖啡脚本文件甚至是空文件时会出现此问题。我仍然不知道如何解决它。

2 个答案:

答案 0 :(得分:8)

检查出来修改execjs runtimes.rb为我修复了它:

https://github.com/sstephenson/execjs/issues/81

我做的修复是编辑lib / execjs / runtimes.rb(在execjs gem的路径下... c:\ Ruby192 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ execjs-1.3.0在我的身上机器)以便JScript运行时定义如下:

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

问题似乎与Windows 8中的JS运行时有关。不完全确定该交易是什么。可能有几种方法可以解决它,安装node.js,therubyracer,类似的东西。但这就行了。

答案 1 :(得分:1)

在您的application.js中,如果您将“应用程序”更改为“default”,它将开始工作。我不知道为什么,但确实如此。

阅读application.js感觉就好像该页面会尝试在 assets / javascripts / 文件夹中搜索turbolinks.js但无法找到该文件。当我们将它从应用程序更改为默认值时,它会将rubolinks从Ruby的默认位置拉出,而不是应用程序。只是我的假设。