我正在尝试在cygwin(windows7)上运行Rails入门博客。我收到以下错误消息:
Welcome#index
中的ExecJS :: RuntimeErrormodule.js:340
throw err;
^
Error: Cannot find module 'C:\tmp\execjs20130903-50672-1vn7gqc.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
(in /usr/lib/ruby/gems/1.9.1/gems/turbolinks-1.3.0/lib/assets/javascripts /turbolinks.js.coffee)
节点已安装。
这是在
之后$rails generate controller welcome index
$rails s
我在cygwin上运行Rails 4.0 有什么想法可能会发生这种情况吗?
由于
umbregachoong
答案 0 :(得分:2)
我遇到了这个错误,它与临时文件的路径错误有关。我可以通过更改\gems\[ruby version]\gems\execjs-2.0.2\lib\execjs
中的以下两个文件来修复它。
(可能在\usr\lib\ruby\
中找到,但这取决于你的Ruby安装方式。我使用的是RVM,所以我的不同。)
compile_to_tempfile(source) do |file|
extract_result(@runtime.send(:exec_runtime, file.path))
end
end
应该改为
compile_to_tempfile(source) do |file|
filepath = file.path
if ExecJS.cygwin? && @runtime.name == "JScript"
IO.popen("cygpath -m " + file.path) { |f| filepath = f.read }
filepath = filepath.gsub("\n","")
end
extract_result(@runtime.send(:exec_runtime, filepath))
end
end
在最后两个end
之前添加此权限。
def cygwin?
@cygwin ||= RbConfig::CONFIG["host_os"] =~ /cygwin/
end
重新启动Rails服务器后,运气好的话。
答案 1 :(得分:0)
不要做任何事情只需转到application / assets / javascript / application.js并删除
' //'
来自
// =需要turbolinks
到
=需要turbolinks
基本上会从文件中取消注释该行 当我在Default rails服务器中遇到RAILS Tutorial中的类似错误时,这一步完成了我的工作。我使用的是Windows 10 PC,这解决了我的问题