栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Windows上的ExecJS :: RuntimeError尝试遵循rubytutorial

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Windows上的ExecJS :: RuntimeError尝试遵循rubytutorial

我的朋友几个月前尝试在Win 8 RTM上进行Rails教程,并遇到了此错误。不知道Windows 7中是否也存在此问题,但这可能会有所帮助。

选项:

1)删除

//= require_tree.
/忽略问题-正如上述ColinR所述,此行首先不应引起问题。ExecJS在系统上的Javascript运行时下正常工作是一个实际问题,删除此行只是忽略了这一事实。

2)安装Node.js /失控-
许多人似乎最终只是安装Node.js并使用它代替了系统上已有的Javascript运行时。尽管这是一个有效的选项,但它还需要其他软件,并且只能避免原始问题,即ExecJS无法与系统中已经存在的Javascript运行时一起正常工作。如果应该在系统上运行现有的Javascript运行时,为什么不运行它而不是安装更多软件?据ExecJS创建者说,实际上已经支持Windows内置的运行时…

ExecJS使您可以从Ruby运行Javascript代码。它会自动选择可用于评估Javascript程序的最佳运行时,然后将结果作为Ruby对象返回给您。

ExecJS支持以下运行时:

  • therubyracer-Ruby中嵌入的Google V8
  • therubyrhino-嵌入在JRuby中的Mozilla Rhino
  • Node.js
  • Apple JavascriptCore-包含在Mac OS X中
  • Microsoft Windows脚本宿主(Jscript)

(来自github.com/sstephenson/execjs#execjs)

3)实际解决问题/学习-
使用选项1和2的知识来搜索其他解决方案。在实际找到有关我们所遇到的根本问题的信息之前,我无法告诉您在看到选项1或2时我关闭了多少个网页。我们一直在寻找的唯一原因是,我们无法相信Rails团队(1)在每个产生问题的脚手架生成项目中插入一行代码,或者(2)要求我们安装其他软件才能运行该默认设置代码行。因此,我们最终解决了我们的根本问题(您的里程可能会有所不同)。

对我们 有用的解决方案 在出现问题的系统上,找到ExecJS的 runtimes.rb
文件。看起来像这样。复制找到的文件以进行备份。打开原始的runtimes.rb进行编辑。找到以开头的部分

Jscript= ExternalRuntime.new(
。在该部分中,在
:command => "cscript //E:jscript //Nologo//U",
-删除一行
//U
。然后在包含
:encoding => 'UTF-16LE' # Cscript with //U returnsUTF-16LE
-将UTF-16LE更改为的行上
UTF-8
。将更改保存到文件。该文件的这一部分现在应显示为:

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)

接下来,停止然后重新启动Rails服务器,并在浏览器中刷新产生原始错误的页面。希望页面现在加载没有错误。这是我们最初发布结果的ExecJS问题线程:

如果这不能解决问题,则始终可以用(希望)制作的备份副本覆盖修改后的runtimes.rb,一切将恢复到原来的状态。在这种情况下,请考虑选项3并继续搜索。让我们知道最终对您有用的..除非删除了require_tree或安装了node.js,否则已经有很多事情发生了。:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号