【问题标题】:Rails asset pipeline doesn't indicate which file produced an errorRails 资产管道不指示哪个文件产生了错误
【发布时间】:2016-03-30 07:59:59
【问题描述】:

我终其一生都无法弄清楚如何让 Sprockets 指示哪个文件导致了编译错误。我只是收到如下错误:

CoffeeScript

在 14671 毫秒内完成 500 次内部服务器错误(ActiveRecord:281.4 毫秒)

ExecJS::RuntimeError - SyntaxError: [stdin]:1:5: unexpected ,:
execjs (2.6.0) lib/execjs/external_runtime.rb:84:in `extract_result'

可以通过在包含的 .coffee 文件中添加以下无效语法来触发:

test,

萨斯

在 14671 毫秒内完成 500 内部服务器错误(ActiveRecord:281.4 毫秒)

Sass::SyntaxError - “0”后的 CSS 无效:预期的表达式(例如 1px,粗体)是“;”:
sass (3.4.20) lib/sass/scss/parser.rb:1179:in `expected'

可以通过将分号添加到 .sass 文件来触发,如下所示:

.test
  top: 0;

如果出现警告,服务器日志会显示一些有用的信息,例如

/path/to/file.sass 的第 9 行警告: 这个选择器没有任何属性,不会被渲染。

但是,语法错误似乎只是呈现 500 错误并告诉我错误的行和列,但不告诉我它在哪个文件中。我已经挖掘了回溯,但它们没有给出任何指示发生错误的文件。如何让输出显示发生 SyntaxError 的文件?

版本(撰写本文时的所有最新版本):

  • Rails 4.2.5
  • Sprockets-Rails 3.0.0
  • 链轮 3.5.2
  • Sass-Rails 5.0.4
  • 萨斯 3.4.20
  • Coffee-Rails 4.1.0
  • 咖啡脚本 2.4.1
  • Coffee-Script-Source 1.10.0

【问题讨论】:

    标签: ruby-on-rails coffeescript sprockets


    【解决方案1】:

    继续阅读服务器中的 500 错误。它应该显示导致错误的文件和文件行。下面的例子是 app/assets/stylesheets/test.sass:2

    Completed 500 Internal Server Error in 152ms (ActiveRecord: 0.0ms)
    
    ActionView::Template::Error (Invalid CSS after "0": expected expression (e.g. 1px, bold), was ";"):
        2: <html>
        3: <head>
        4:   <title>StackoverflowQuestions</title>
        5:   <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
        6:   <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
        7:   <%= csrf_meta_tags %>
        8: </head>
      app/assets/stylesheets/test.sass:2
      app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__1109435584510058936_70275420820360'
    

    【讨论】:

    • 感谢您的回答,但不幸的是,我的回溯看起来不像那样。我已经编辑了问题以包括回溯的第一行以防万一。它只是从那里继续通过 gem 堆栈,没有引用我项目中的文件名。
    【解决方案2】:

    一种解决方法是在 Rails 之外自己编译您的 .coffee 文件,以获得一个不错的错误消息。见https://stackoverflow.com/a/41700235/1836506

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多