Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3.1 Rails 3.1资产管道和Uglifier中可能存在的缺陷_Ruby On Rails 3.1_Heroku_Asset Pipeline_Sprockets_Uglifyjs - Fatal编程技术网

Ruby on rails 3.1 Rails 3.1资产管道和Uglifier中可能存在的缺陷

Ruby on rails 3.1 Rails 3.1资产管道和Uglifier中可能存在的缺陷,ruby-on-rails-3.1,heroku,asset-pipeline,sprockets,uglifyjs,Ruby On Rails 3.1,Heroku,Asset Pipeline,Sprockets,Uglifyjs,我在Heroku do上部署时遇到问题,导致rake任务失败 rake assets:precompile 底部是我积分时得到的误差 轨道3.1 Jquery日历: 推特引导 错误发生在丑八怪身上 我怀疑这个问题可能与日历中包含了许多本地化有关 我通过设置以下内容来解决此错误: # Compress JavaScripts and CSS config.assets.compress = false 由于临时文件已清理,我无法检查这些文件。我也无法让RubyMine中的调试器在断点处停止

我在Heroku do上部署时遇到问题,导致rake任务失败

rake assets:precompile
底部是我积分时得到的误差

  • 轨道3.1
  • Jquery日历:
  • 推特引导
错误发生在丑八怪身上

我怀疑这个问题可能与日历中包含了许多本地化有关

我通过设置以下内容来解决此错误:

# Compress JavaScripts and CSS
config.assets.compress = false
由于临时文件已清理,我无法检查这些文件。我也无法让RubyMine中的调试器在断点处停止

如果这是一个bug,有什么想法吗?有没有办法让临时文件不被删除?任何使RubyMine调试器在rake任务上工作的方法(是的,尝试了显而易见的方法,使用EAP 112-291)

rake资产:预编译:所有RAILS\u ENV=生产RAILS\u GROUPS=资产 rake中止!意外字符“”(行:21454,列:0,位置: (641761)

错误 在新的JS_Parse_错误(/tmp/execjs20111231-15374-1ffe7h4.JS:497:22) at js_错误(/tmp/execjs20111231-15374-1ffe7h4.js:505:15) 解析错误(/tmp/execjs20111231-15374-1ffe7h4.js:596:17) 在Object.next_令牌[作为输入](/tmp/execjs20111231-15374-1ffe7h4.js:839:17) 下一步(/tmp/execjs20111231-15374-1ffe7h4.js:943:37) 在Object.semicolon[as 1](/tmp/execjs20111231-15374-1ffe7h4.js:986:38) 在prog1(/tmp/execjs20111231-15374-1ffe7h4.js:1527:28) 在简单的_语句中(/tmp/execjs20111231-15374-1ffe7h4.js:1123:35) at/tmp/execjs20111231-15374-1ffe7h4.js:1031:35 at/tmp/execjs20111231-15374-1ffe7h4.js:1510:32


您可能会发现其中一个js文件的某个地方有语法错误。这可能是块末尾缺少分号,或者其他一些小问题。通常浏览器仍会加载js,并且可以正常工作,但uglifier无法使用这些错误对其进行压缩。我会先查看本地化文件


找出哪个文件包含错误的一种方法是使用最少的一组文件在本地重新预编译,并逐个添加内容,直到其中断。如果是因为缺少分号,则中断将是您添加的最后一个文件。

我在删除了一个错误的“debugger”语句后预编译。Woops。

I18N文件“jquery-ui-i18n.js”在每个注释前都有一个坏字符

查看shell中带有“more”的前两行,显示了错误的字符:

<U+FEFF>/* Afrikaans initialisation for the jQuery UI date picker plugin. */
/* Written by Renier Pretorius. */
jQuery UI日期选择器插件的南非荷兰语初始化*/ /*雷尼尔·普雷托里厄斯写的*/
删除此字符后,它会工作。

如果任何阅读此线程的人在rails应用程序中遇到unicode字符或“UTF-8中的字节序列无效”的问题,请尝试将其放入production.rb文件:

# override default uglifier options so we don't mangle unicode
  config.assets.js_compressor = Uglifier.new(output: {ascii_only: true})

在我的例子中,丑八怪正在将我的javascript中的字符串(如
\udbff
转换为UTF-8字符
í?
),这最终破坏了一些unicode正则表达式(这在turbo链轮和codemirror中发生,但您的javascript依赖unicode字符的ASCII表示时可能会遇到它)

丑八怪没有告诉我错误的行号,这真是太烦人了!我是说,来吧……这不是编译器应该做的吗?对我来说,不幸的是,我下载了一个库,大约有3000行,所以我现在花了很多时间删掉库中的部分,重新编译,直到找到符合语法的部分错误。在我的例子中,在编译select2变音符号后,它将一组unicode字符串键(如“\u24B6”)转换为“?”,导致一组重复的键。这导致语法错误:“严格模式下不允许对象文字中的重复数据属性。”